![]() |
Menu funktionalität ohne MainMenu
Hallo Zusammen!
Ich möchte die Funktionalität eines MainMenus ohne das Menu haben. Bedeutet... Ich definieren &Aufrufen &Nichtaufruf &Sonderfunktion CooleFunktion STRG+C Wenn keines der MDI-Childs auf Alt-A, Alt-N, Alt-S reagiert hat, möchte ich die Funktionen die hinter meinen Menüpunkten stehen aufrufen... Das Ganze aber bitte ohne das ein MainMenu dargestellt wird... Ich brauche also kein Keypreview.... sondern ein Shortcut/Accelerator wurde nicht verwendet Aufruf... Jemand ne Idee hierfür? Mavarik |
AW: Menu funktionalität ohne MainMenu
TActionList?
MfG Dalai |
AW: Menu funktionalität ohne MainMenu
Liste der Anhänge anzeigen (Anzahl: 1)
Ich verwende hier ein TApplicationEvent-Object in der Mainform. Mit der folgenden Abfrage kann ich die Shortcuts aus dem Main-Manu verwenden und die Alt+Buchstabe-Abfrage machen, um z.B. den entsprechenden Menübandeintrag (Alt+S für "Start") anzeigen zu lassen. Gleichzeitig wird sichergestellt, dass bestimmte Alt (+Strg)-Kombinationen von den üblichen Objekten (z.T. TEdit für "@-Zeichen", das man normalerweise mit Alt+Strg+E aufruft) verarbeitet werden können.
Delphi-Quellcode:
Beispiel für eine Anwendung im anliegenden Screenshot: Mainmenu ist in Form, wird aber nicht angezeigt (Stattdessen arbeite ich mit eigenen Menübändern, nutze aber die Menüeinstellungen des Mainmenus, für die der User auch benutzerdefinierte Einstellungen vornehmen kann, um so z.B. eigene Shortcuts festzulegen).
procedure Tfrm_Main.AppEvents1ShortCut(var Msg: TWMKey; var Handled: Boolean);
begin //Shortcut für mein nicht angezeigtes MainMenu? Handled := Menu1.IsShortCut(Msg); //Shortcut bzw. Key kam nicht aus dieser Form, daher hier keine weitere Prüfung //und statt dessen Verarbeitung in anderer Form (z.B. MDI) if Application.ActiveFormHandle <> self.handle then exit; if not handled then begin // Alt+Strg gedrückt? if (Getkeystate (VK_MENU) shr 15 <> 0) and (Getkeystate (VK_Control) <> 0) then begin if (msg.CharCode in [69,81]) then begin // @ und €-Zeichen wurden gedrückt Handled := false; exit; end; end; end; if not handled then begin // Tasten Alt+Buchstaben (A-Z) gedrückt? if Getkeystate (VK_MENU) shr 15 <> 0 then begin if (msg.CharCode in [65..90]) or (msg.CharCode.ToString = '186') then begin handled := True; sleep (10); // Tatsächliche Verarbeitung in der Form-KeyUp-Prozedur FormKeyup(NIL, msg.CharCode, [ssAlt]); end; end; end; end; |
AW: Menu funktionalität ohne MainMenu
In jedem Buch alla "Wie diskutiere ich richtig" steht gleich am Anfang der Tipp: vereinbaren sie zuerst ein gemeinsames Glossar, so dass die Wörter für beide das gleiche bedeuten. Sonst reden sie evtl. aneignender vorbei.
Was meinst du mit "Menu funktionalität ohne MainMenu". Du hast kein Menü oder willst du nicht ein Menü aufklappen? |
AW: Menu funktionalität ohne MainMenu
Komisch, die anderen drei (Dalai, Harry und ich) haben die Frage verstanden. Vielleicht liegts doch an Dir? ;-)
|
AW: Menu funktionalität ohne MainMenu
@Dejan Vu
Und jetzt? |
AW: Menu funktionalität ohne MainMenu
Und jetzt könntest Du deinen Beitrag überdenken. Ne wahr? ;-)
|
AW: Menu funktionalität ohne MainMenu
Alternativ könnte man auch einfach zum Thema zurück kommen. :roll:
|
AW: Menu funktionalität ohne MainMenu
Zitat:
So hab ich es jedenfalls verstanden. |
AW: Menu funktionalität ohne MainMenu
Du könntest das mit RegisterHotkey / WM_HOTKEY machen. Wobei ich nicht weiß, ob diese Hotkeys dann nicht evtl. durch die MDI-Childs verwendeten, gemergeten Menü-Hotkeys übersteuern.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz