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 auf dynamisch erzeugte untermenüeinträge zugreifen (https://www.delphipraxis.net/95019-auf-dynamisch-erzeugte-untermenueeintraege-zugreifen.html)

vanilla 29. Jun 2007 10:49


auf dynamisch erzeugte untermenüeinträge zugreifen
 
hallo leute,

ich erzeuge dynamisch untermenüeinträge, es können max. 6 einträge werden.. das hab ich auch gut hinbekommen, meine einträge werden immer schön aufgelistet. Jetzt brauche ich aber jeweils ne onclick funktion ?? wie krieg das denn hin ??? :gruebel:

ungefähr so erzeuge ich die Einträge
[/delphi

for i := 0 to iMax do
begin


SubItem := TMenuItem.Create(Self); // Erzeugen des Untermenüeintrags
SubItem.Caption:= 'eintrag'; // Name des Untermenüeintrages}
Item.Add(SubItem); // Einfügen des Untermenüeintrages
end; //for

[delphi]

Meta777 29. Jun 2007 10:58

Re: auf dynamisch erzeugte untermenüeinträge zugreifen
 
So sollte es gehen:
@SubItem.OnClick := @MyOnClick;

EDIT:
Dabei wäre zu beachten dass, wenn die Procedure nicht in einer Komponente deklariert ist, die OnClick einen weiteren Parameter (ASelf: TObject) haben muss:
also würde das so aussehen:
Delphi-Quellcode:
procedure OnClick(ASelf: TObject; Sender: TObject);

DGL-luke 29. Jun 2007 11:01

Re: auf dynamisch erzeugte untermenüeinträge zugreifen
 
Das @ braucht man eigentlich nicht.

Das OnClick muss aber bereits implementiert sein.

Etwa so:

Delphi-Quellcode:
procedure TForm1.MenuItemClick(Sender: TObject);
begin
  case (Sender as TControl).Tag of
    0: ;
    1: ;
  end;
end;
Deine SubItems sollten dann ein durchlaufendes Tag haben. Anhand dessen kannst due sie dann innerhalb eines OnClick-Events unterscheiden.

bitsetter 29. Jun 2007 11:17

Re: auf dynamisch erzeugte untermenüeinträge zugreifen
 
Hi,

hier gab es schon mal ein ähnliches Problem.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz