Browse Source

* initial version

git-svn-id: trunk@1537 -
florian 20 years ago
parent
commit
43a60ccfe2
2 changed files with 76 additions and 0 deletions
  1. 1 0
      .gitattributes
  2. 75 0
      tests/webtbs/tw3997.pp

+ 1 - 0
.gitattributes

@@ -6274,6 +6274,7 @@ tests/webtbs/tw3971.pp svneol=native#text/plain
 tests/webtbs/tw3973.pp svneol=native#text/plain
 tests/webtbs/tw3977.pp svneol=native#text/plain
 tests/webtbs/tw3977.txt svneol=native#text/plain
+tests/webtbs/tw3997.pp -text svneol=unset#text/plain
 tests/webtbs/tw4006.pp svneol=native#text/plain
 tests/webtbs/tw4007.pp svneol=native#text/plain
 tests/webtbs/tw4009.pp svneol=native#text/plain

+ 75 - 0
tests/webtbs/tw3997.pp

@@ -0,0 +1,75 @@
+{ Source provided for Free Pascal Bug Report 3997 }
+{ Submitted by "Dominique Louis" on  2005-05-21 }
+{ e-mail: [email protected] }
+
+{$mode delphi}
+program Project1;
+
+{$APPTYPE CONSOLE}
+
+uses
+  SysUtils;
+
+type
+  TMyNotifyEvent =  procedure of object;
+
+  TMyBaseWindow = class( TObject )
+  private
+    FOnRender: TMyNotifyEvent;
+  public
+    property OnRender: TMyNotifyEvent read FOnRender write FOnRender;
+  end;
+
+  TBaseInterface = class( TObject )
+  protected
+    procedure Render; virtual; abstract;
+  public
+    MainWindow : TMyBaseWindow;
+    constructor Create;
+    destructor Destroy; override;
+    procedure ResetInputManager;
+  end;
+
+  TMyInterface = class( TBaseInterface )
+  protected
+    procedure Render; override;
+  end;
+
+
+{ TBaseInterface }
+constructor TBaseInterface.Create;
+begin
+  inherited;
+  WriteLn( 'TBaseInterface.Create' );
+  MainWindow := TMyBaseWindow.Create;
+  ResetInputManager;
+end;
+
+destructor TBaseInterface.Destroy;
+begin
+  MainWindow.Free;
+  inherited;
+end;
+
+procedure TBaseInterface.ResetInputManager;
+begin
+  WriteLn( 'ResetInputManager' );
+  MainWindow.OnRender := Render;
+end;
+
+{ TMyInterface }
+procedure TMyInterface.Render;
+begin
+  WriteLn( 'Rendering' );
+end;
+
+var
+  MyInterface : TMyInterface;
+
+begin
+  MyInterface := TMyInterface.Create;
+
+  MyInterface.Render;
+
+  MyInterface.Free;
+end.