2011-01-10 10 views
1

Ist es möglich, dass ein Popup-Menü den ersten Eintrag in einem Untermenü ausführt? Bei Mausklick wird das Untermenü angezeigt. Wenn ich auf Popup klicke, kann ich den Klick auf den ersten Untermenüpunkt ausführen? Dies wäre so, dass der Benutzer nicht in das Untermenü wechseln und das erste Element auswählen muss. Obwohl es die am häufigsten verwendete Option in diesem Fall das erste Element ausführen wird. Verwenden von Delphi 2009.Delphi Popup-Menü mit Untermenü und klicken Sie auf Element wird das erste Element im Untermenü ausführen, möglich?

+2

Dies ist möglicherweise * sehr *, * sehr * gefährlich. –

+0

Es ist Larry Wall die Frage zu stellen. Denken Sie daran, es gibt mehr als eine Möglichkeit, dies zu tun. –

+1

Ihr wäre das einzige Programm mit diesem Verhalten. Das Verhalten kann nur zufällig entdeckt werden, denn wer Erfahrung mit Menüs hat, weiß, dass dies nicht funktioniert. Dann könnten Sie Fehlerberichte von denen erwarten, die es entdeckt haben. Es ist fast nie eine gute Idee, solche grundlegenden UI-Verhaltensweisen zu ändern. –

Antwort

4

Das ist nicht möglich (mit Standard-Windows-Menüs) und verwirrend den Benutzer (weil die Benutzererfahrung mit Ihrem Verhalten widersprechen wird).

0

Sie könnten diese verwenden:

Windows.HiliteMenuItem(Handle, TMessage(Msg).WParam, 0, MF_BYPOSITION or MF_HILITE); 
Windows.PostMessage(Handle, WM_KEYDOWN, VK_DOWN, 0); 

dann eine andere Nachricht schreiben das ausgewählte Element zu klicken.

2

Werfen Sie einen Blick auf TMenuItem.Default. Durch Doppelklicken auf das übergeordnete Element wird der standardmäßige Untermenüeintrag ausgeführt. Vielleicht nicht gut genug für Sie, aber es bricht nicht das erwartete Verhalten aus einem Menü.

TMenuItem.Default

Verwandte Themen