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 t2000
t2000

Registriert seit: 15. Dez 2005
Ort: NRW
212 Beiträge
 
Delphi 11 Alexandria
 
#1

Interface Methode als Parameter übergeben

  Alt 25. Jul 2022, 11:27
Delphi-Version: 11 Alexandria
Hallo,

da ich immer noch nicht zu 100% fit bzgl Interfaces bin, hier eine Frage.

Ich möchte eine Funktion als Parameter übergeben. So wie es sonst geht, funktioniert es leider nicht.
Hier meine Deklarationen:

Delphi-Quellcode:
type
  TMeineFunktion = function( const Param: TJSONObject): TJSONObject;// of object;

  IMeinInterface = interface(IInvokable)
  ['{A...0}']
    function DieFunktion( const Param: TJSONObject): TJSONObject;
  end;
Jetzt möchte ich die Funktion als Parameter übergeben. Grund ist, das ich bestimmt 100 Stellen hbe, bei denen immer wieder das gleiche gemacht wird. Neben einem String ist nur die Interface-Funktion variabel.
Ich will nicht 100 Mal den selben Code schreiben (ca. 20-30 Zeilen).

Delphi-Quellcode:
var
  EinInterfaceObjekt: IMeinInterface;
begin
  // Initialisierungen ...

  Ergebnis := Rechenfunktion( EinString, EinInterfaceObjekt.DieFunktion);

end;
Ich bekomme immer Parameterfehler.

Alternativen:
Delphi-Quellcode:
  @EinInterfaceObjekt.DieFunktion

  Addr(EinInterfaceObjekt.DieFunktion)

  var xx: TMeineFunktion;
  with EinInterfaceObjekt do
    xx := @DieFunktion;
gehen alle nicht.
Geht das grundsätzlich nicht oder habe ich einfach noch keine Ahnung, wie damit umzugehen ist?

Für eine schnelle Hilfe wäre ich sehr dankbar.

VG
Thomas
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  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 06:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz