![]() |
Referenz auf Interface-Methode
Hallo zusammen,
folgendes Problem: ich würde gerne eine Referenz auf eine Methode (ohne Parameter) eines Interfaces an eine Klasse weitergeben. Mit der "procedure of object"-Methodik geht das wohl leider nicht. Jemand eine Idee wie man das bewerkstelligen kann? |
AW: Referenz auf Interface-Methode
Entweder stehe ich genau so feste wie du auf dem Schlauch oder da blockt tatsächlich irgendetwas. Ich würde den Typ von "procedure of object" zu "reference to procedure" ändern, das ist in
Delphi-Quellcode:
bereits als
System.SysUtils
Delphi-Quellcode:
vordefiniert. Dass ergibt mittels anonymer Prozedur zwar etwas Overhead, aber dein Gedöns müsste somit noch nicht einmal das Interface implementieren.
TProc
Delphi-Quellcode:
uses System.SysUtils;
type IMyInterface = interface procedure doStuff(); end; TMyObject = class(TInterfacedObject, IMyInterface) procedure doStuff(); end; procedure TMyObject.doStuff(); begin WriteLn('I''m doing stuff'); end; var instance: IMyInterface; procedureReference: TProc; begin instance := TMyObject.Create(); procedureReference := TMyObject(instance).doStuff; procedureReference := procedure() begin instance.doStuff; end; end. |
AW: Referenz auf Interface-Methode
Ich würde entweder das ganze Interface übergeben oder die Methode als Interface erzeugen und dein Interface von diesem Interface ableiten oder die Implementation von beiden Interfaces...
|
AW: Referenz auf Interface-Methode
Zitat:
(Siehe auch: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 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