mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-06 03:09:39 +01:00
parent
6f6e60b723
commit
e9b87792ac
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -8321,6 +8321,7 @@ tests/webtbs/tw9113.pp svneol=native#text/plain
|
|||||||
tests/webtbs/tw9128.pp svneol=native#text/plain
|
tests/webtbs/tw9128.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw9139.pp svneol=native#text/plain
|
tests/webtbs/tw9139.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw9139a.pp svneol=native#text/plain
|
tests/webtbs/tw9139a.pp svneol=native#text/plain
|
||||||
|
tests/webtbs/tw9141.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw9145.pp svneol=native#text/plain
|
tests/webtbs/tw9145.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw9162.pp svneol=native#text/plain
|
tests/webtbs/tw9162.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw9167.pp svneol=native#text/plain
|
tests/webtbs/tw9167.pp svneol=native#text/plain
|
||||||
|
|||||||
60
tests/webtbs/tw9141.pp
Normal file
60
tests/webtbs/tw9141.pp
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
uses classes,typinfo;
|
||||||
|
type
|
||||||
|
TA = class(TPersistent)
|
||||||
|
private
|
||||||
|
FOnTest: TNotifyEvent;
|
||||||
|
procedure SetOnTest(value: TNotifyEvent);
|
||||||
|
public
|
||||||
|
procedure CallTest;
|
||||||
|
published
|
||||||
|
property OnTest: TNotifyEvent read FOnTest Write SetOnTest;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TB = class
|
||||||
|
public
|
||||||
|
procedure Test(Sender: TObject);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TA.SetOnTest(value: TNotifyEvent);
|
||||||
|
begin
|
||||||
|
FOnTest := Value
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TA.CallTest;
|
||||||
|
begin
|
||||||
|
if Assigned(FOnTest) then
|
||||||
|
OnTest(self)
|
||||||
|
else
|
||||||
|
WriteLn('OnTest no set');
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TB.Test(Sender: TObject);
|
||||||
|
begin
|
||||||
|
WriteLn('Test Called');
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
A: TA;
|
||||||
|
B: TB;
|
||||||
|
PropInfo: PPropInfo;
|
||||||
|
Method: TMethod;
|
||||||
|
begin
|
||||||
|
A := TA.Create;
|
||||||
|
B := TB.Create;
|
||||||
|
|
||||||
|
Method:=TMethod(@B.Test);
|
||||||
|
|
||||||
|
PropInfo:=GetPropInfo(A.ClassInfo, 'OnTest');
|
||||||
|
if Assigned(PropInfo) then begin
|
||||||
|
SetMethodProp(A, PropInfo, Method);
|
||||||
|
WriteLn('Testing SetMethodProp method');
|
||||||
|
A.CallTest;
|
||||||
|
end
|
||||||
|
else begin
|
||||||
|
WriteLn('PropInfo for ''OnTest'' not found');
|
||||||
|
Halt(1);
|
||||||
|
end;
|
||||||
|
end.
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user