Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Prozedur als Parameter


Delete - Di 11.01.05 17:39
Titel: Prozedur als Parameter
Hio, Leute.

Ich habe da ein Problem. Ich möchte eine Prozedur als Parameter übergeben, ungefähr so:


Delphi-Quelltext
1:
 Procedure TForm1.initButton(but: TButton; x,y,h,w: Integer; prozedur: OnClick);                    


Es soll ein Button initialisiert werden und je nach Bedarf eine andere Prozedur bekommen.
Ist das möglich? So wie in meinem Beispiel gehts schonmal nicht.

Vielen Dank für die Hilfe :-)

One Of Ten


jasocul - Di 11.01.05 17:42

Die Übergabe muss als Prozedure-Adresse erfolgen. Dann sollte es funktionieren.


Delete - Di 11.01.05 18:12

Habe mein Problem gerade selbst gelöst.

Einfach dem Parameter den Typ TNotifyEvent geben und den Namen der Prozedur beim Aufruf der Prozedur übergeben...

Noch einen schönen Tag..

One Of Ten


Kedariodakon - Di 11.01.05 18:22

Einen Typen für die Methode bzw. Procedure deklarieren:

Delphi-Quelltext
1:
2:
3:
Type
  TMyOnClick  = Procedure();
  TMyOnClickO  = Procedure() Of Object;

Und dann in der Procedure / Funktion den Typ übergeben...


Bye


MitschL - Di 11.01.05 18:23

Da weis ich schon mal was...
,dann will ich es nicht verkommen lassen.


Delphi-Quelltext
1:
type OnClick = procedure{params:paramTypes} );                    

irgendwo darüber, ermöglicht auch die Übergabe einer Prozedur-Variablen.

So.

gegüßt!
MitschL


[edit] Und auch noch zu langsam. :?


Delete - Di 11.01.05 18:50

So ist das nun mal, MitschL ;-)

Hättest du früher gepostet, hätte ich mich wahrscheinlich nicht weiter drangesetzt.

Aber dennoch ist die Idee mit dem Type gar nicht schlecht.

Mfg