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 Wie vielter Eintrag in einem PopupMenu ausgewählt? (https://www.delphipraxis.net/10504-wie-vielter-eintrag-einem-popupmenu-ausgewaehlt.html)

Sharky 20. Okt 2003 09:58


Wie vielter Eintrag in einem PopupMenu ausgewählt?
 
Hai,

kann ich ermitteln auf den wievielten Eintrag in einem PopUp-Menü geklickt wurde?
Meine Versuche mit IndexOf oder MenuIndex haben mir als ergebniss immer -1 zurückgegeben.
Ich dann das natürlich über den Umweg der Tag Eigenschaft machen. Aber so wäre es mir lieber.

sakura 20. Okt 2003 10:04

Re: Wie vielter Eintrag in einem PopupMenu ausgewählt?
 
Hm, ich mache es so (ohne Probleme):

Delphi-Quellcode:
procedure TfrmMain.MenuItemsClick(Sender: TObject);
begin
  ShowMessage(IntToStr(PopupMenu1.Items.IndexOf(TMenuItem(Sender))));
end;
...:cat:...

Sharky 20. Okt 2003 10:09

Re: Wie vielter Eintrag in einem PopupMenu ausgewählt?
 
:wall: :wall:

(TMenuItem(Sender)) da war der Fehler bei mir.

Danke dir oh Du DP-Katze (SchüsselMitMilchRüberschiebe)

DashRendar 12. Sep 2006 13:46

Re: Wie vielter Eintrag in einem PopupMenu ausgewählt?
 
Das Problem habe ich auch grade mit meinem Popup-Radio-Menu. Aber so funktioniert das nicht bei mir, weil ich mich zu doof anstelle. Bei Items verlangt Delphi immer einen Index. Aber welchen Index muss ich da wählen? Ich habe ja mehr als einen Eintrag in meinem Menu "Race1".
So siehts bei mir aus:

Delphi-Quellcode:
procedure TForm3.Race1Click(Sender: TObject);
begin
(Sender as TMenuItem).Checked := true;
ShowMessage(IntToStr(Race1.Items.IndexOf(TMenuItem(Sender))));
end;
Wie geht's richtig :?:

Gruß,
DashRendar

Hawkeye219 12. Sep 2006 14:00

Re: Wie vielter Eintrag in einem PopupMenu ausgewählt?
 
Hallo DashRendar,

In der Eigenschaft Delphi-Referenz durchsuchenTMenuItem.MenuIndex findest du den Index des Menüeintrags innerhalb seines übergeordneten Menüs.

Gruß Hawkeye

DashRendar 12. Sep 2006 14:17

Re: Wie vielter Eintrag in einem PopupMenu ausgewählt?
 
Damit habe ich es schon probiert bekomme aber immer nur den Menuindex von meinem MainMenu (hier: 1) zurueck. Egal ob ich

Delphi-Quellcode:
procedure TForm3.Race1Click(Sender: TObject);
begin
(Sender as TMenuItem).Checked := true;
ShowMessage(InttoStr((Sender as TMenuItem).MenuIndex));
end;
oder so mache

Delphi-Quellcode:
procedure TForm3.Race1Click(Sender: TObject);
begin
(Sender as TMenuItem).Checked := true;
ShowMessage(InttoStr(Race1.MenuIndex));
end;
Bei letzterem leuchtet mir das auch ein, weil ja nicht auf das untergeordnete Menu zugreife. Aber wie greift man darauf zu? So das einem der Index-Wert für den Pop-Up Eintrag angezeigt und nicht der für den Mainmenuindex?

*verzweifel*

Hawkeye219 12. Sep 2006 15:18

Re: Wie vielter Eintrag in einem PopupMenu ausgewählt?
 
Du verwirrst mich. In Beitrag #4 sprichst du von einem PopupMenü, nun vom MainMenu. Aufgrund deiner Angaben vermute ich, daß "Race1" der erste Menüeintrag des Hauptmenüs ist, und das Ereignis für alle Untereinträge von "Race1" ausgelöst werden soll. Offenbar hast du die Behandlungsroutine "Race1Click" mit dem Hauptmenüeintrag verknüpft, du mußt die Routine aber mit allen Untereinträgen von "Race1" verbinden.

Gruß Hawkeye

DashRendar 12. Sep 2006 16:05

Re: Wie vielter Eintrag in einem PopupMenu ausgewählt?
 
Juhu :-D . Genau das war mein Fehler, leuchtet mir nun ein wieso es vorher nicht geklappt hat.
Vielen Dank nochmal für die Geduld!

Gruß,
DashRendar


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