AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi String aus zur Laufzeit erstelltem PopUpMenü zurückgeben?
Thema durchsuchen
Ansicht
Themen-Optionen

String aus zur Laufzeit erstelltem PopUpMenü zurückgeben?

Ein Thema von Grolle · begonnen am 30. Mär 2006 · letzter Beitrag vom 31. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#1

String aus zur Laufzeit erstelltem PopUpMenü zurückgeben?

  Alt 30. Mär 2006, 21:56
Hallo,
ist es möglich einen String aus einem zur Laufzeit erstelltem PopUpMenü zurückzugeben?
Die PopUpMenü-Items erstelle ich ganz einfach aus einer Stringliste. Jetzt soll einfach die
ausgewählte Item-Caption zurückgegeben werden. Wie mache ich das?

Viele Grüße,

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: String aus zur Laufzeit erstelltem PopUpMenü zurückgeben

  Alt 30. Mär 2006, 22:29
Hallo Stefan,

wenn du den menu items einen Handler für das Event OnClick() zugeordnet hast, dann kannst du einfach auf die Caption zugreifen:

Delphi-Quellcode:
procedure TDemoForm.MenuItemClick(Sender: TObject);
begin
  with Sender as TMenuItem do
    ShowMessage(Caption);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#3

Re: String aus zur Laufzeit erstelltem PopUpMenü zurückgeben

  Alt 30. Mär 2006, 22:41
Hallo,

nein ich habe keinen Handler zugeordnet. Hier mein Text:
Delphi-Quellcode:
procedure TForm1.PopupMenu1Popup(Sender: TObject);
var
a : TMenuItem;
sl : TStringList;
i : integer;
begin
  sl :=TStringList.Create;
  sl.LoadFromFile(ExtractFilePath(ParamStr(0))+'daten\gruppen.txt');
  sl.Add('Alle Gruppen');
  for i := 0 to SL.Count - 1 do
   begin
    a := TMenuItem.Create(Self);
    a.Caption := SL[i];
    a.Hint := SL[i];
    PopUpMenu1.Items.Add(a);
   end;
  sl.free;
end;

  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: String aus zur Laufzeit erstelltem PopUpMenü zurückgeben

  Alt 30. Mär 2006, 23:04
Zitat von Grolle:
nein ich habe keinen Handler zugeordnet. Hier mein Text:
Dann weise ihn doch zu. Ich meine wie willst du sonst auf onClick reagieren?

Deinen Quelltext folgender maßen anpassen:
Delphi-Quellcode:
procedure TForm1.PopupMenu1Popup(Sender: TObject);
var
a : TMenuItem;
sl : TStringList;
i : integer;
begin
  sl :=TStringList.Create;
  sl.LoadFromFile(ExtractFilePath(ParamStr(0))+'daten\gruppen.txt');
  sl.Add('Alle Gruppen');
  for i := 0 to SL.Count - 1 do
   begin
    a := TMenuItem.Create(Self);
    a.Caption := SL[i];
    a.Hint := SL[i];
    // Hier neu
    a.OnClick := MenuItemClick;
    // ende neu
    PopUpMenu1.Items.Add(a);
   end;
  sl.free;
end;
und dann die methode von marabu


Zitat von marabu:
Delphi-Quellcode:
procedure TDemoForm.MenuItemClick(Sender: TObject);
begin
  with Sender as TMenuItem do
    // mach was du willste mit Caption
end;
Dann geht sollte es gehen
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#5

Re: String aus zur Laufzeit erstelltem PopUpMenü zurückgeben

  Alt 30. Mär 2006, 23:15
Hallo,
alles klar. Klappt so. Besten Dank!

  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#6

Re: String aus zur Laufzeit erstelltem PopUpMenü zurückgeben

  Alt 30. Mär 2006, 23:32
Hallo,
klappt doch noch nicht so ganz. Der erste Buchstabe, der zurückkommt ist ein &.
Dieser dürfte eigentlich gar nicht existieren

  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: String aus zur Laufzeit erstelltem PopUpMenü zurückgeben

  Alt 30. Mär 2006, 23:35
Das '&' wird automatisch hinzu gefügt, damit man den Eintrag über die Taste (Buchstabe danach) anwählen kann.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#8

Re: String aus zur Laufzeit erstelltem PopUpMenü zurückgeben

  Alt 30. Mär 2006, 23:37
Ok, dann muss ich den einfach abschneiden.

Danke!

  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

Re: String aus zur Laufzeit erstelltem PopUpMenü zurückgeben

  Alt 30. Mär 2006, 23:43
Zitat von Grolle:
Ok, dann muss ich den einfach abschneiden.
Ja, aber ich bin mir nicht sicher, ob das '&' immer am Anfang steht. Eigentlich kann es überall sein. Ich würde das mal testen, wenn 2 Einträge den gleichen Anfangsbuchstaben haben. Aber 100% kann ich das nicht sagen.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#10

Re: String aus zur Laufzeit erstelltem PopUpMenü zurückgeben

  Alt 30. Mär 2006, 23:46
Hallo,
mit StringReplace klappt das einwandfrei.

Viele Grüße...

  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:39 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