Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Adresse einer Objekt-Procedure übergeben (https://www.delphipraxis.net/70355-adresse-einer-objekt-procedure-uebergeben.html)

WoTo 29. Mai 2006 10:24


Adresse einer Objekt-Procedure übergeben
 
Hallo zusammen,
bei der folgenden Anweisung gibt der Compiler den Hinweis "Variable erforderlich" aus !

Delphi-Quellcode:
FTrigger.PtrTriggerEnd := @FBWManager.TriggerEnd;
Wobei FTrigger.PtrTriggerEnd wie folgt deklariert ist:

Delphi-Quellcode:
property PtrTriggerEnd : Pointer write FPtrTriggerEnd;
Und FBWManager.TriggerEnd sieht wie folgt aus:

Delphi-Quellcode:
TBWManager = class(TObject)
private
.
.
.
public
procedure TriggerEnd;

end;
Ich möchte nur die Adresse der Procedure FBWManager.TriggerEnd übergeben.

Was mache ich falsch ?

MfG
Woto

Hawkeye219 29. Mai 2006 10:59

Re: Adresse einer Objekt-Procedure übergeben
 
Hallo Woto,

eine Methode kann nicht über einen einfachen Pointer adressiert werden. Du solltest die Referenz als TThreadMethod vereinbaren und nicht als pointer.

Die Zuweisung sieht dann so aus:

Delphi-Quellcode:
FTrigger.PtrTriggerEnd := FBWManager.TriggerEnd;
Gruß Hawkeye

Kedariodakon 29. Mai 2006 11:12

Re: Adresse einer Objekt-Procedure übergeben
 
Oder du machst dir deine eigenen MethodenTypen, falls du Rückgabe werte oder Parameter benötigst und benutzt diese dann:

Delphi-Quellcode:
Type
  TMeineMethode = Procedure( Const MeinStr: String; Var MeinVar: Integer ) Of Object;
  TMeineMethode2 = Function(  Const MeinStr: String; Var MeinVar: Integer ): Integer Of Object;
Bye Keda

WoTo 29. Mai 2006 11:39

Re: Adresse einer Objekt-Procedure übergeben
 
Hallo zusammen,
eure Antworten haben mir sehr geholfen. :hello:

Ich habe mir einen eigenen MethodenType erstellt und diesen statt Pointer verwendet.

Vielen Dank :hi:

MfG
Woto


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 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