![]() |
dynamisches PopUp-Menü
Hallo Forum,
ich möchte ein PopUp-Menü dynamisch erstellen und eine Reihe von Personennamen als menu-Items darstellen. Das funktioniert soweit auch. for I := 0 to TeamTBL.RecordCount -1 do begin A := TMenuItem.Create(Self); A.AutoCheck := True; A.Caption := SL[I]; A.OnClick := Was hier tun?? MeinPopUpMenu.Items.Add(A); end; .... Dann ist das PopUp gefüllt mit ein Paar Namen. Ich möchte nun, dass ich beim Click auf ein MenuItem den Namen (die Caption) auswerten kann. Weiß aber nicht wie ich das zustande bringen kann. Ich bin dankbar für jeden Hinweis. Gruß Sugar |
AW: dynamisches PopUp-Menü
Delphi-Quellcode:
Diese Methode sollte sich zuweisen lassen und kann dann Deinerseits angepasst werden.
type
TDeinForm = class(TForm) ... private procedure DoOnPopupClick(Sender: TObject); ... end; ... procedure TDeinForm.DoOnPopupClick(Sender: TObject); begin if Sender is TMenuItem then ShowMessage(TMenuItem(Sender).Caption); end; |
AW: dynamisches PopUp-Menü
Vielen Dank,
ich werde das mal ausprobieren. |
AW: dynamisches PopUp-Menü
Zitat:
Dann ist mir noch was aufgefallen: Du iterierst durch eine Datenmenge mit einer For-Schleife. Eleganter wäre es jedoch, wenn du dazu die Möglichkeiten Datenbank verwendest:
Delphi-Quellcode:
Var
TeamName : String; Begin TeamTBL.First; While Not TeamTBL.EOF Do Begin TeamName := TeamTBL.FieldByName('TNAME').AsString; ... TeamTBL.Next; End; |
AW: dynamisches PopUp-Menü
Zumal du scheinbar über die Grenzen eines Recordsets iterierst, die Daten aber aus eine Stringlist kommen SL[i]? Dann benutz doch nur die Stringlist. Du könntest dem Menü-Item dann im Tag noch das "i" mitgeben, was deine Auswertung dann vllt. einfacher macht:
Delphi-Quellcode:
In dem Beispiel ist es jetzt nicht einfacher, aber je nachdem was du machen willst...
if Sender is TMenuItem then
ShowMessage(SL[TMenuItem(Sender).Tag]); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 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