AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

popup Menü Problem

Offene Frage von "buchsbaum"
Ein Thema von buchsbaum · begonnen am 21. Jul 2009 · letzter Beitrag vom 22. Jul 2009
Antwort Antwort
Seite 1 von 2  1 2      
buchsbaum

Registriert seit: 21. Jul 2009
9 Beiträge
 
#1

popup Menü Problem

  Alt 21. Jul 2009, 16:39
Hallo

Ich habe ein kleines Problem. Ich nutze Delphi 7 Enterprise, falls das für dieses Problem von Bedeutung ist.

Mein Programm erstellt dynamisch ein PopUp Menü. Je nachdem welche Einträge sich in einer Listbox befinden werden auch Einträge im Popup Menü erzeugt. Mein problem ist nun, dass ich nicht weiß, wie ich das .onClick event der PopUps ausgelesen bekomme.
Je nachdem welcher Popup Eintrag gedrückt wird, soll ein unterschiedlicher Text in einem Label erscheinen.

Ich wollte nun mittels Sender-Auslesen die PopUp Schaltfläche identifizieren und dann auswerten. Dazu wollte ich nutzen:

Delphi-Quellcode:
submenu := TMenuItems.create(self);
submenu.caption := 'hallo';
submenu.onClick := neue_proz;


procedure neue_proz(Sender: TObject);
begin
  if TMenuItem(Sender).caption = 'hallothen
    Label1.caption := 'Richtig'
  else
    Label1.caption := 'Falsch';
end;


problem ist nur, dass die caption des PopUp Menüs bei ersten Buchstaben bedingt durch den Hotkey einen Unterstrich unter den Buchstaben setzt und damit bekomm ich immer 'Falsch' ausgegeben, denn 'hallo'(normal) ist ja nicht gleich 'hallo'(Mit Unterstrich unter dem 'h').

Weiß jemand eine Lösung, würde mich sehr freuen!

Ídentifizierung über TMenuItem(Sender).name geht leider nicht, da das PopUp Menü nach Texteinträgen bezeichnet wird und die meist nicht für die Eigenschaft .name anwendbar sind (z.B. Leerzeichen im Text, ect.)

PopUpMenu.autohotkey := false; geht leider auch nicht

Mit freundlichem Gruß
Buchsbaum


PS: Entschuldigt den Doppelpost, habe den Beitrag vorher an der falschen Stelle gepostet!

[edit=mkinzler]Delphi-Tags ergänzt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: popup Menü Problem

  Alt 21. Jul 2009, 16:51
Hallo und Willkommen in der DP ,

Du könntest statt der Caption auch die Tag-Property des Items benutzen, die steht ja zur freien Verfügung. Wenn es aber unbedingt über die Caption gehen muss, versuch es mal mitif (Sender as TMenuItem).Caption = '&hallothen Wobei ich nicht verstehe, dass eine von Dir selbst vergebene Caption auf einmal anders sein soll.
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
Bebe

Registriert seit: 3. Apr 2005
Ort: Berlin
104 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: popup Menü Problem

  Alt 21. Jul 2009, 17:10
Wenn AutoHotkeys auf maAutomatic steht wird der HotKey automatisch erstellt. Dadurch wird ein 'hallo' zu '&hallo'

Gruß
Matze
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: popup Menü Problem

  Alt 21. Jul 2009, 17:12
Das ist mir noch nie aufgefallen . Na gut, man könnte ja das "&" zur Not auch noch mit StringReplace rauswerfen und dann vergleichen.
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
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#5

Re: popup Menü Problem

  Alt 21. Jul 2009, 17:27
Zitat von DeddyH:
Das ist mir noch nie aufgefallen . Na gut, man könnte ja das "&" zur Not auch noch mit StringReplace rauswerfen und dann vergleichen.
Besser per Menus.StripHotkey.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#6

Re: popup Menü Problem

  Alt 21. Jul 2009, 17:29
Zitat von buchsbaum:
if TMenuItem(Sender).caption = 'hallo' then
Geht nichtif Sender = miHallo then (oder Hallo1 oder HalloItem oder wie das Menüitem nun heißt)?
Uli Gerhardt
  Mit Zitat antworten Zitat
Bebe

Registriert seit: 3. Apr 2005
Ort: Berlin
104 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: popup Menü Problem

  Alt 21. Jul 2009, 17:29
Und ich habe damals das &-Zeichen gesucht, bis ich diese Option kennenlernte ...
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#8

Re: popup Menü Problem

  Alt 21. Jul 2009, 19:55
Hallo
Zitat von buchsbaum:
Je nachdem welche Einträge sich in einer Listbox befinden werden auch Einträge im Popup Menü erzeugt.
folglich ist der Index der Items des Menüs identisch mit denen der Listbox.

Dann sollte MenuItem.MenuIndex weiterhelfen:

Delphi-Quellcode:
if ListBox.Items[TMenuItem(Sender).MenuIndex] = 'hallothen
  Label1.caption := 'Richtig'
  else
    Label1.caption := 'Falsch';
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
buchsbaum

Registriert seit: 21. Jul 2009
9 Beiträge
 
#9

Re: popup Menü Problem

  Alt 22. Jul 2009, 08:22
Zitat von DeddyH:
Hallo und Willkommen in der DP ,

Du könntest statt der Caption auch die Tag-Property des Items benutzen, die steht ja zur freien Verfügung. Wenn es aber unbedingt über die Caption gehen muss, versuch es mal mitif (Sender as TMenuItem).Caption = '&hallothen Wobei ich nicht verstehe, dass eine von Dir selbst vergebene Caption auf einmal anders sein soll.

Vielen Dnak für die Begrüßung!

Ich habe Ihren Rat befolgt und die '&hallo' VAriante benutzt! Funktioniert einwandfrei! Vielen Dank, auch an die Anderen!


Wollte nur noch mal kurz erklären. Die vergebe die Caption zwar selbst, aber da bedingt durch den Hotkey die Caption automatisch von 'hallo' auf 'hallo'(mit unterstrich unterm ersten buchstaben) gesetzt wird, "ändert" sie sich ja automatisch, das war mein Problem!

Aber die o.gen. Variante funktioniert hervorragend, danke nochmal! Das erspart viel Arbeit und Ärger
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.169 Beiträge
 
Delphi 12 Athens
 
#10

Re: popup Menü Problem

  Alt 22. Jul 2009, 09:06
Zitat von buchsbaum:
Ich habe Ihren Rat befolgt und die '&hallo' VAriante benutzt! Funktioniert einwandfrei! Vielen Dank, auch an die Anderen!

...

Aber die o.gen. Variante funktioniert hervorragend, danke nochmal! Das erspart viel Arbeit und Ärger
das funktioniert im Moment hervorragend

Da du das & automatisch setzen läßt, hast du keinen Einfluß darauf, welcher Buchstabe genommen wird.
Es kann also am mal 'h&allo', 'ha&llo' oder auch 'hall&o' sein.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 12:33 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