Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
Delphi 10 Seattle Enterprise
|
AW: ClickHandler mehrmals benutzten?
25. Jan 2014, 16:47
Jo, obwohl, so ist es schöner zu benutzen
Delphi-Quellcode:
type
IUIToolbarClickHandler = interface(NSObject)
['{6D8473BD-461C-479D-ADF6-59F933EDA57B}']
procedure Click; cdecl;
end;
THandlerProc = reference to procedure;
TUIToolBarClickHandler = class(TOCLocal)
private
FHandler: THandlerProc;
protected
function GetObjectiveCClass: PTypeInfo; override;
constructor Create( Handler : THandlerProc );
public
class function Construct( Handler : THandlerProc ) : IUIToolbarClickHandler;
procedure Click; cdecl;
end;
class function TUIToolBarClickHandler.Construct( AHandler : THandlerProc ) : IUIToolbarClickHandler;
begin
Result := Self.Create( AHandler );
end;
constructor TUIToolBarClickHandler.Create( AHandler : THandlerProc );
begin
inherited Create;
FHandler := AHandler;
end;
function TUIToolBarClickHandler.GetObjectiveCClass;
begin
Result:= TypeInfo(IUIToolbarClickHandler);
end;
procedure TUIToolBarClickHandler.Click;
begin
if Assigned( FHandler ) then
FHandler(); // mit Klammern ist auf jeden Fall die procedure gemeint und nicht der Variablenwert ;o)
end;
und dann nur noch
Delphi-Quellcode:
var
HelloWorldHandler : IUIToolbarClickHandler;
HelloWorldHandler := TUIToolBarClickHandler.Construct(
procedure
begin
ShowMessage( 'Hello World' );
end );
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
Geändert von Sir Rufo (25. Jan 2014 um 16:50 Uhr)
|