123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- { %OPT=-Sew -vw }
- unit tw10736;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils;
-
- type
- { TAbstractPage }
- TAbstractPage = class
- protected
- procedure Execute virtual; abstract;
- public
- class procedure PageExecute;
- end;
- TPageClass = class of TAbstractPage;
- { TPageUnknown }
- TPageUnknown = class(TAbstractPage)
- protected
- procedure Execute override;
- end;
- procedure HandleRequest;
- implementation
- { TAbstractPage }
- class procedure TAbstractPage.PageExecute;
- begin
- (*
- with Self.Create do try
- Execute;
- finally
- Free;
- end;
- *)
- end;
- { TPageUnknown }
- procedure TPageUnknown.Execute;
- begin
- //Whatever...
- end;
- procedure HandleRequest;
- //Zomaar een kleine besturing, iemand andere ideen?
- var Page: TPageClass;
- begin
- Page := TPageUnknown;
- Page.PageExecute;
- end;
- end.
|