Ignore:
Timestamp:
Oct 9, 2012, 1:58:45 PM (12 years ago)
Author:
chronos
Message:
  • Přidáno: Hlavní modul Base, který slouží jako základní rozhraní k aplikaci pro ostatní moduly. Modul System zajistí udržování seznamu instalovaných modulů v perzistentním úložišti v databázi.
  • Upraveno: Správce modulů ModuleManager je nyní použit pro každé komunikační spojení zvlášť.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Packages/CoolWeb/WebServer/UWebApp.pas

    r96 r105  
    2424  TPageList = class(TListObject)
    2525    RootDir: string;
     26    function FindByPage(Page: TWebPage): TRegistredPage;
    2627    function FindByName(Name: string): TRegistredPage;
    27     procedure RegisterPage(PageClass: TWebPageClass; out Reference; Path: string);
    28     procedure UnregisterPage(Path: string);
     28    procedure RegisterPage(Page: TWebPage; Path: string);
     29    procedure UnregisterPage(Page: TWebPage);
    2930    function ProducePage(HandlerData: THTTPHandlerData): Boolean;
    3031  end;
     
    7879{ TPageList }
    7980
     81function TPageList.FindByPage(Page: TWebPage): TRegistredPage;
     82var
     83  I: Integer;
     84begin
     85  I := 0;
     86  while (I < Count) and (TRegistredPage(Items[I]).Page <> Page) do Inc(I);
     87  if I < Count then Result := TRegistredPage(Items[I])
     88    else Result := nil;
     89end;
     90
    8091function TPageList.FindByName(Name: string): TRegistredPage;
    8192var
     
    117128end;
    118129
    119 procedure TPageList.RegisterPage(PageClass: TWebPageClass; out Reference;
    120   Path: string);
     130procedure TPageList.RegisterPage(Page: TWebPage; Path: string);
    121131var
    122132  NewPage: TRegistredPage;
     
    125135  NewPage := TRegistredPage(AddNew(TRegistredPage.Create));
    126136//  NewPage.Page := PageClass.Create(Self);
    127   NewPage.Page := PageClass.Create(nil);
     137  NewPage.Page := Page;
    128138  NewPage.Name := Path;
    129   TWebPage(Reference) := NewPage.Page;
    130 end;
    131 
    132 procedure TPageList.UnregisterPage(Path: string);
    133 var
    134   Page: TRegistredPage;
    135 begin
    136   Page := FindByName(Path);
    137   Remove(Page);
     139end;
     140
     141procedure TPageList.UnregisterPage(Page: TWebPage);
     142var
     143  RegPage: TRegistredPage;
     144begin
     145  RegPage := FindByPage(Page);
     146  Remove(RegPage);
    138147end;
    139148
Note: See TracChangeset for help on using the changeset viewer.