![]() |
Function/Procedure selbst als Parameter übergeben?
Hallo Zusammen,
wie kann ich eine Procedure oder Function als Parameter einer anderen Procedure oder Function übergeben? .. Ist etwas schwer zu beschreiben ein Beispiel :-) Procedure ProcInnen; begin ... end; procedure Aussen(MyProc :was?); <<<als Parameter ProcInnen übergeben if irgendwas then MyProc <<< aufrufen ... end; Gruß Kostas |
Re: Function/Procedure selbst als Parameter übergeben?
Du kannst den Rückgabewert einer Funktion als Parameter einer anderen Funktion übergeben. Eine Prozedur kannst du aber meines Wissens nach nicht, da diese ja keinen Rückgabewert hat. Und Parameter sind nunmal für Werte geschaffen worden.
Greetz alcaeus PS: Ich weiß nicht ob ich dich genau verstanden hab, erklärs im Notfall genauer... |
Re: Function/Procedure selbst als Parameter übergeben?
Zitat:
Delphi-Quellcode:
Ein Beispiel, bei dem die Procedure auch Parameter hat findest du unter
// TProcedure ist in SysUtils deklariert
procedure Aussen(MyProc :TProcedure); begin if Assigned(MyProc) then // prüfe auf nil Zeiger MyProc; // aufrufen end; // Test begin Aussen(ProcInnen); Aussen(nil); // auch zulässig Aussen(Randomize); // auch zulässig, da Randomize dem Typ TProcedure entspricht end; ![]() |
Re: Function/Procedure selbst als Parameter übergeben?
und wofür brauch man soetwas??
|
Re: Function/Procedure selbst als Parameter übergeben?
Callback-Prozeduren und Events. Ohne das gäb es keine Nachrichtenfunktionen und auch keine ButtonClicks ;)
|
Re: Function/Procedure selbst als Parameter übergeben?
hmmm könntest du das bitte genauer erläutern :stupid: ?
:duck: |
Re: Function/Procedure selbst als Parameter übergeben?
Ein Event (also beispielsweise ein Klick eines Buttons) ist in VCL-Komponenten als Zeiger auf eine Methode deklariert. Um jetzt bei einem Button-Click wirklich Code auszuführen, muss die Instanz der Komponente ja wissen, was sie ausführen muss. Dafür wird eine eigene Methode geschrieben (deine ButtonClick-Methode) und einen Zeiger auf diese Methode als Event gesetzt.
Wäre das nicht möglich, müsstest du für jeden Button, den du benutzt, eine eigene Klasse von TButton ableiten. |
Re: Function/Procedure selbst als Parameter übergeben?
Zitat:
![]() |
Re: Function/Procedure selbst als Parameter übergeben?
Volltreffer Leute, genau das habe ich gemeint.
Besten Dank dafür. Gruß Kostas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 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