Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Prozedur als Argument einer Prozedur übergeben (https://www.delphipraxis.net/116087-prozedur-als-argument-einer-prozedur-uebergeben.html)

cltom 23. Jun 2008 10:33


Prozedur als Argument einer Prozedur übergeben
 
Hallo DP,

hoffe, es ist nix triviales, bei den Suchbegriffen "Prozedur, Parameter" findet man halt dutzende unpassende Treffer.

Folgendes: ich möchte in einer procedure eine Reihe von Objekten erzeugen und diesen Objekten (Images) eine procedure für das OnClick-Event zuweisen. Soweit kein Problem. Jetzt würde ich aber gern die Parameter dieser "Objekt-erzeugen-procedure" übergeben. So auch jene procedures, die den images dann zugewiesen werden. Also sinngemäß soll das dann so aussehen

Delphi-Quellcode:
procedure create_images(afolder: string; aparent: TTabSheet; aOnClickEvent: ??????);
begin

  for i:=1 to n
    begin
      img := TImage.Create;
      img.parent := aparent;
      img.onclick := aOnClickEvent;
    end;

end;
Zur Übersicht stark zusammengekürzt.

Geht so etwas grundsätzlich? Welchen Typ hat ein solches Argument?

dank und gruß
tom

Sharky 23. Jun 2008 10:35

Re: Prozedur als Argument einer Prozedur übergeben
 
Zitat:

Zitat von cltom
[...] Geht so etwas grundsätzlich? Welchen Typ hat ein solches Argument? [...]

Hai Tom,

das OnClick müsste Delphi-Referenz durchsuchenTNotifyEvent sein.

DeddyH 23. Jun 2008 10:36

Re: Prozedur als Argument einer Prozedur übergeben
 
Das sollte gehen (ist übrigens TNotifyEvent), solange die Signatur der übergebenen Methode stimmt und es auch wirklich eine Methode ist.

[edit] Da bin ich dem Hai wohl hinterhergeschwommen :stupid: [/edit]

cltom 23. Jun 2008 10:44

Re: Prozedur als Argument einer Prozedur übergeben
 
Super, vielen Dank. Muss erst ein bisschen umbasteln, um sehen zu können, dass es klappt. Aber schon mal vielen Dank für die schnellen Antworten.


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