AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Interface Methode als Parameter übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Interface Methode als Parameter übergeben

Ein Thema von t2000 · begonnen am 25. Jul 2022 · letzter Beitrag vom 27. Jul 2022
 
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.630 Beiträge
 
Delphi 12 Athens
 
#10

AW: Interface Methode als Parameter übergeben

  Alt 26. Jul 2022, 12:01
Ist nur so eine Idee:
Delphi-Quellcode:
type
  TJSONObjectFunc = reference to function( const Param: TJSONObject): TJSONObject;// of object;

type
  TPubFunc = record
    class function InstallEvent(Target: IPubFunc): TJSONObjectFunc; static;
    class function UninstallEvent(Target: IPubFunc): TJSONObjectFunc; static;
    class function SubscribeEvent(Target: IPubFunc): TJSONObjectFunc; static;
    class function UnsubscribeEvent(Target: IPubFunc): TJSONObjectFunc; static;
    class function CancelSubscriber(Target: IPubFunc): TJSONObjectFunc; static;
    class function FireEvent(Target: IPubFunc): TJSONObjectFunc; static;
  end;

implementation

class function TPubFunc.InstallEvent(Target: IPubFunc): TJSONObjectFunc;
begin
  Result := function(const Param: TJSONObject) : TJSONObject
    begin
      Result := Target.InstallEvent(Param);
    end;
end;

{ analog für die anderen Methoden }
Aufruf dann so:
Delphi-Quellcode:

procedure HandlePubFunc(xPubFunc: IPubFunc; AFunc: TJSONObjectFunc);
begin
  ...
  json := AFunc(jsonPara);
  ...
end

var
  xPubFunc : IPubFunc;
begin
  xPubFunc := xClient.Service<IPubFunc>;
  HandlePubFunc(xPubFunc, TPubFunc.InstallEvent(xPubFunc));
  ...

  HandlePubFunc(xPubFunc, TPubFunc.FireEvent(xPubFunc));
  ...
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz