mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 04:39:28 +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/tw9139.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/tw9162.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