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 Problem mit NewSubMenu (https://www.delphipraxis.net/19114-problem-mit-newsubmenu.html)

MrKnogge 29. Mär 2004 17:43


Problem mit NewSubMenu
 
Hallo,

Ich hab zwar nach NewSubMenu gesucht,aber dummerweise nichts gefunden,
nja soll vor kommen :mrgreen:

Ich erstelle zur Laufzeit ein Popupmenu mit
Delphi-Quellcode:
NewItem : TMenuItem;
SubItem : array of TMenuItem;
...
NewItem := NewSubMenu(Member[index].Name,0,'SubItem'+IntToStr(index),SubItem);
Member ist ein record mit mehreren Benutzereinstellungen, in den SubItems lade
ich die Webseiten der Benutzer.

Dies funzt soweit auch wunderbar !

Aber nun möchte ich dem Eintrag des Untermenüs im Hauptmenü
ebenfalls ein OnClick-Ereigniss zuweisen.
Also dachte ich:
Delphi-Quellcode:
NewItem := NewSubMenu(Member[index].Name,0,'SubItem'+IntToStr(index),SubItem);
NewItem.Tag := index;
NewItem.OnClick := PopupMenuItemsClick;    
PopupMenu5.Items.Insert(2,NewItem);
aber nun wird dummerweise das OnClick-Ereignis an
stelle des Ausfahrens des Untermenüs ausgeführt.

Was kann man dagegen machen, oder wie bekomme ich ein Untermenü
dessen Haupteintrag im übergeordneten Menü ein OnClick-Erreigniss
hat ? Wenn's zur Entwurfszeit geht, muss das doch auch zur Laufzeit
machbar sein, oder ?

Dani 31. Mär 2004 14:51

Re: Problem mit NewSubMenu
 
Hi,

ich habs auch mal ausprobiert, kann aber keinen Unterschied des Verhaltens von zur Designzeit erstelleten Popup-Menus feststellen. Bei jedem Popup wird OnClick ausgelöst, egal ob man nur lange genug über dem Eintrag verharrt hat oder der Eintrag geklickt wurde. Vielleicht kann man das durch seinen eigenen Nachfahren von TPopupMenu korrigieren, aber damit kenn ich mich leider nicht aus :(

PS: Hoffe deine Frage richtig verstanden zu haben :mrgreen:
Zitat:

aber nun wird dummerweise das OnClick-Ereignis an
stelle des Ausfahrens des Untermenüs ausgeführt.
Das Untermenü wurde bei mir schon ausgefahren...zumindest wenn da auch irgendwelche Items drin waren.

shmia 31. Mär 2004 15:00

Re: Problem mit NewSubMenu
 
Delphi-Quellcode:
NewItem := NewSubMenu(Member[index].Name,0,'SubItem'+IntToStr(index),SubItem);
NewItem.Tag := index;
// falsch
NewItem.OnClick := PopupMenuItemsClick;

// richtig (denk ich mal :-)
for i := Low(SubItem) to High(SubItem) do
   SubItem[i].OnClick := PopupMenuItemsClick;


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