AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

dynamisches PopUp-Menü

Ein Thema von Sugar · begonnen am 31. Jan 2017 · letzter Beitrag vom 31. Jan 2017
Antwort Antwort
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#1

dynamisches PopUp-Menü

  Alt 31. Jan 2017, 08:21
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.314 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: dynamisches PopUp-Menü

  Alt 31. Jan 2017, 08:25
Delphi-Quellcode:
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;
Diese Methode sollte sich zuweisen lassen und kann dann Deinerseits angepasst werden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#3

AW: dynamisches PopUp-Menü

  Alt 31. Jan 2017, 08:47
Vielen Dank,

ich werde das mal ausprobieren.
  Mit Zitat antworten Zitat
Slipstream
(Gast)

n/a Beiträge
 
#4

AW: dynamisches PopUp-Menü

  Alt 31. Jan 2017, 09:31
Hallo Forum, ich möchte ein PopUp-Menü dynamisch erstellen und eine Reihe von Personennamen als menu-Items darstellen. Das funktioniert soweit auch.
Du könntest dich auch fragen: Was trage ich im Objektinspektor ein, wenn ich einem Menüpunkt eine Ereignisbehandlung zuweisen möchte. Ja, richtig, eine Methode deines Formulars, das unterhalb der Type-Anweisung deklariert wird. Mit einem Doppelklick im OI auf das gewünschte Ereignis erstellt Delphi automatisch einen Methodenrumpf. Das musst du beim selbsterstellen natürlich selber machen.

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;
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.701 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: dynamisches PopUp-Menü

  Alt 31. Jan 2017, 09:55
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:
if Sender is TMenuItem then
    ShowMessage(SL[TMenuItem(Sender).Tag]);
In dem Beispiel ist es jetzt nicht einfacher, aber je nachdem was du machen willst...
Ralph
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf