AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Action-Shortcut wird im Menü nicht ausgeführt. Warum?

Action-Shortcut wird im Menü nicht ausgeführt. Warum?

Ein Thema von ULIK · begonnen am 23. Apr 2014 · letzter Beitrag vom 23. Apr 2014
Antwort Antwort
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
416 Beiträge
 
Delphi 11 Alexandria
 
#1

Action-Shortcut wird im Menü nicht ausgeführt. Warum?

  Alt 23. Apr 2014, 12:08
Auch wenn mir die Frage jetzt schon wirklich peinlich ist (hab das anscheinend seit geraumer Zeit nie ausprobiert): Wieso funktionieren Action-Shortcuts in offenen Menüs oder Popupmenüs nicht?

Genauer: ich hab ein Standard VCL Hauptmenü das ein Item in einen Untermenü enthält. Diesem Item ist eine Action mit ShortCut Strg+D zugewiesen (alternativ, das so definierte Item ist einem Popupmenü zugewiesen).

Zur Laufzeit funktioniert der Shortcut bestens, wenn ich ihn einfach so aufrufe. Nun öffne ich mit der Maus das Menü und ich sehe den Eintrag mit dem ihm zugewiesenen Shortcut. Wenn ich nun Strg+D drücke, dann passiert gar nichts. Das gleiche gilt, wenn ich das Popup-Menü öffne. Auch hier reagiert der Shortcut nicht.

Gibt es da einen Grund dafür? Und kann man das Ganze umgehen, so daß der Shortcut dennoch ausgeführt wird (und dabei das Menü schließt)?

Ja, ich weiß, daß ich auch der Caption ein Tastenkürzel zuweisen kann und das funktioniert auch, aber ich bin auf das Problem gestoßen, daß mein Programm bei einer bestimmten Aktion ein Kontextmenü anzeigt, das die Option zum Kopieren von Daten ins Clipboard enthält (die Daten stehen aber erst mit Öffnen des Kontext-Menüs zur Verfügung, deswegen kann der Shortcut nicht direkt aufgerufen werden; das kann auch nicht geändert werden). Und diese Aktion will ein Benutzer mit Strg+C (also dem Standard) auslösen. Was nun nicht funktioniert.

edit: Umgebung ist Delphi XE

Grüße,
Uli

Geändert von ULIK (23. Apr 2014 um 12:14 Uhr) Grund: Umgebung nachgereicht
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Action-Shortcut wird im Menü nicht ausgeführt. Warum?

  Alt 23. Apr 2014, 12:36
Ich vermute mal die ShortCuts werden nur in der ParentForm/ParentControl ausgewertet und nicht im Menü.
Eventuell kann man das Menü entsprechend erweitern. (selber einbauen)

Ach ja, du könntest im OnKeyDown der Strg+C "abfangen" (Key aber nicht auf 0 setzen) und dort die nötigen Daten bereitstellen, bzw. das OnPopup-Event aufrufen (da ist dein Code doch drin?), dann ginge Strg+C auch ohne das Menü zu öffnen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
416 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Action-Shortcut wird im Menü nicht ausgeführt. Warum?

  Alt 23. Apr 2014, 13:20
Ich vermute mal die ShortCuts werden nur in der ParentForm/ParentControl ausgewertet und nicht im Menü.
Eventuell kann man das Menü entsprechend erweitern. (selber einbauen)
Werd mal schauen, ob sich da was machen läßt. Fragt sich nur, ob sich der Aufwand lohnt Scheint ja anscheinend kein offensichtlicher Fehler von mir zu sein (die IDE und Notepad können das nämlich auch nicht), was ich jetzt so herausgefunden habe.

Ach ja, du könntest im OnKeyDown der Strg+C "abfangen" (Key aber nicht auf 0 setzen) und dort die nötigen Daten bereitstellen, bzw. das OnPopup-Event aufrufen (da ist dein Code doch drin?), dann ginge Strg+C auch ohne das Menü zu öffnen.
Jein, das Popupmenü muß auf alle Fälle erscheinen, da es am Ende der eigentlichen Aktion aufgerufen wird und das Kopieren der Daten nur einer von mehreren gleichberechtigten Folgeaktionen ist. Es war 'nur' ein Benutzer, der sich beschwert hatte, daß man mit Strg+C nicht das Kopieren in dem Popup-Menü auswählen kann und man stattdessen nochmal mit der Maus hinklicken muß.

Aber ich hab dem Ganzen nun auf alle Fälle Tastenkürzel in der Caption verpaßt, mal schauen, was dazu gesagt wird Mich hat's dann nur gewundert, daß das generell nicht zu gehen scheint.


vielen Dank,
Uli
  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 08:10 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