![]() |
Popup-Menu dynamisch an ListView's, ListView erkennen ?
Hallo #,
ich hänge dynamisch ein PopupMenu (mit Untermenüs) an ein TListView. Wie komme ich in der OnClick-Methode jetzt das das ListView am besten ran. - "hochhangeln" beginnend beim Sender(TMenuItem), bis das TListView gefunden wurde - beim Anpappen des Popup an das ListView sich das irgendwie merken z.B. in ein TList und den List-Index im Menu-Tag speichern Wie würdet Ihr das machen ? Heiko |
Re: Popup-Menu dynamisch an ListView's, ListView erkennen ?
Geht das nicht:
Delphi-Quellcode:
Bei Untermenüs muss man u.U. zum ersten PopUpmenü hochhangeln.
TPopUpMenu(Sender).PopupComponent
|
Re: Popup-Menu dynamisch an ListView's, ListView erkennen ?
Hallo,
das Hochhangeln klappt bei mir nicht
Delphi-Quellcode:
Das Menu besteht aus einem TMenuItem(Export to) als SubMenu
{ xls }
MenuItem:= TMenuItem(Sender); { Export to } MenuItem:= MenuItem.Parent; { PopupMenu } PopupMenu:= TPopupMenu(MenuItem.Parent); ListView:= TListView(PopupMenu.PopupComponent); und darunter kommt das xls
Delphi-Quellcode:
Export nach
|- xls Das ListView ist NIL ;( In der Hilfe steht zu Parent Wenn es sich bei dem Menüeintrag um einen Eintrag im Hauptmenü oder um einen übergeordneten Eintrag eines Popup-Menüs handelt, ist Parent mit den Wert der Eigenschaft Items des betreffenden Menüs identisch. Das kapier ich überhaupt nicht !!! #Update:# PopupComponent habe ich jetzt beim Erzeugen des Popupmenus gesetzt. Es klappt trotzdem nicht., ListView bleibt NIL ;( Hier der Add-Code
Delphi-Quellcode:
Heiko
procedure TForm_Base.SetExportPopMenu;
var iComponent : Integer; Component : TComponent; ListView : TListView; PopupMenu : TPopupMenu; ExportSubMenu : TMenuItem; MenuItem : TMenuItem; ListViewMenuItem : TListViewMenuItem; begin for iComponent:= 0 to ComponentCount-1 do begin Component:= Components[iComponent]; if Component is TListView then begin ListView:= TListView(Component); if ListView.PopupMenu=NIL then begin PopupMenu:= TPopupMenu.Create(ListView); ListView.PopupMenu:= PopupMenu; end; ListView.PopupMenu.PopupComponent:= ListView; { 7090, "Export nach" } ExportSubMenu:= TMenuItem.Create(Self); ExportSubMenu.Caption:= LS(7090); ListView.PopupMenu.Items.Add(ExportSubMenu); { xls } MenuItem:= TMenuItem.Create(Self); MenuItem.Caption:= LoadStr(7881); MenuItem.Tag:= -1; MenuItem.OnClick:= DoExportListViewTo_XLS; ExportSubMenu.Add(MenuItem); ListViewMenuItem:= TListViewMenuItem.Create; ListViewMenuItem.MenuItem:= MenuItem; ListViewMenuItem.ListView:= ListView; ListViewMenuItemList.Add(ListViewMenuItem); { - } MenuItem:= TMenuItem.Create(Self); MenuItem.Caption:= '-'; ListView.PopupMenu.Items.Add(MenuItem); { to close } MenuItem:= TMenuItem.Create(Self); { 5040, "&Beenden" } MenuItem.Caption:= LS(5040); ListView.PopupMenu.Items.Add(MenuItem); end; end; end; { SetExportPopMenu } |
Re: Popup-Menu dynamisch an ListView's, ListView erkennen ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:48 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