blob: 3ad4199b8518be5be5a0c9253f95fcc5078a34e6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
{ %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.
|