summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/webtbs/tw10736.pp
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.