AGB  ·  Datenschutz  ·  Impressum  







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

PopupMenu - Item vorselektieren

Ein Thema von eholzer · begonnen am 17. Dez 2013 · letzter Beitrag vom 17. Dez 2013
Antwort Antwort
Seite 1 von 2  1 2      
eholzer

Registriert seit: 22. Okt 2009
51 Beiträge
 
#1

PopupMenu - Item vorselektieren

  Alt 17. Dez 2013, 07:29
Hallo,

gibt es eine Möglichkeit bei einem Popupmenu ein Element vorzuselektieren.
Wenn man ein Popupmenu öffnet ist noch kein Element markiert. Man muss mit Pfeiltasten ein Element zuerst auswählen. Ich würde gerne gleich beim Öffnen ein Element markieren.

Gruß
Eric
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: PopupMenu - Item vorselektieren

  Alt 17. Dez 2013, 07:38
Nicht daß ich wüßte. Du könntest aber den Mauszeiger im Ereignis OnPopUp auf einen bestimmten Eintrag verschieben.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: PopupMenu - Item vorselektieren

  Alt 17. Dez 2013, 07:51
Die Maus verschieben ist eigentlich keine so optimale Idee,
aber was praktisch auf's Selbe rauskommt, wäre die Position des Popups entsprechend zu positionieren.

Das kennt man z.B. von einigen ComboBoxen, wo das Popup so verschoben wird, daß der aktuelle Eintrag unter der Maus landet.

Also, anstatt die Maus zu verschieben, einfach das Popup selber öffnen und dessen Position verschieben.




Das Problem ist aber erstmal rauszubekommen, wo im Popup dann der gewünschte Eintrag steht.





OK, nach dem anzeigen des Popups, könnte man versuchen die Tastendrücke zu simulieren, aber das hilft nur, wenn man das Popup via Tastatur bedient,
da die Maus sonst sofort die Selektion wieder verändert, wenn man sie bewegt.
> z.B. mit der KontextMenü-Taste öffnen und via Enter den selektierten Eintrag ausführen
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Dez 2013 um 07:54 Uhr)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: PopupMenu - Item vorselektieren

  Alt 17. Dez 2013, 09:16
Die Maus verschieben ist eigentlich keine so optimale Idee, aber was praktisch auf's Selbe rauskommt, wäre die Position des Popups entsprechend zu positionieren.
Wenn's praktisch auf's selbe hinausläuft, wo läge dann der Haken beim Verschieben des Mauszeigers? Zumindest liefe man dann nicht Gefahr, daß Teile des Pop-Upmenüs außerhalb des Screen-Bereichs landen. Die Position des gewünschten PopUp-Eintrags mu man natürlich bei beiden Versionen selbst ermitteln.
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.677 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: PopupMenu - Item vorselektieren

  Alt 17. Dez 2013, 09:26
Eintrag vorselektieren ist genauso Quark. Wenn der Benutzer mit der Maus rumfummelt, ist der markierte Eintrag ratz fatz wieder weg.

Hier ist vielleicht die Wahl einer andere Auswahlform notwendig - kein PopUp-Menü..evtl TaskDialog?
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: PopupMenu - Item vorselektieren

  Alt 17. Dez 2013, 09:32
Haken: Du nimmst dem Benutzer die Kontrolle über sein Eingabegerät.

Stell dir mal vor jemand verschiebt ständig deinen Mauszeiger oder die Tastatur tippt ständig automatisch irgendwelche Buchstaben, oder deine Maus reagiert kaum noch und vergisst öfters deine Befehle .... so kann doch keiner arbeiten.

PS: Es gibt auch Viren/Scherzprogramme welche den Mauszeiger oder Buttons verschieben ... was natürlich verärgern soll.

PPS: Manche Maustreiber haben auch eine Option "Springe zum Default-Button" von Dialogen ... das hatte ich einmal an, weil es "gut" klang, aber dafür ich suchte auch ständig den Mauszeiger.


@sh17:
Im Prinzip braucht man für die "Standard"-Aktion die Maus nicht zu begewen, sondern klickt gleich nochmal.

Aber da reicht es das Popup um je 5 Pixel nach oben-links zu bewegen (nur, solange es nach unten rechts genug Platz hatte) und legt die Standardaktion auf die erste Zeile.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Dez 2013 um 09:36 Uhr)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: PopupMenu - Item vorselektieren

  Alt 17. Dez 2013, 09:40
Haken: Du nimmst dem Benutzer die Kontrolle über sein Eingabegerät.
Wenn ich dagegen das PopUp-Menü verschiebe, um so denselben Effekt zu erzielen, nämlich einen bestimmten Eintrag auszuwählen, nehme ich dem Benutzer nicht die Kontrolle?

Stell dir mal vor jemand verschiebt ständig deinen Mauszeiger oder die Tastatur tippt ständig automatisch irgendwelche Buchstaben, oder deine Maus reagiert kaum noch und vergisst öfters deine Befehle .... so kann doch keiner arbeiten.
Aber es geht hier doch gar nicht um eine ständige Verschiebung des Mauszeigers und schon gar nicht um das automatische Tippern irgendwelcher Buchstaben. Mit anderen Worten: Wenn man beim PopUp den Mauszeiger verschiebt, geschiet das doch nicht ständig, und Buchstaben werden dabei auch keine getippt.

PS: Es gibt auch Viren/Scherzprogramme welche den Mauszeiger oder Buttons verschieben ... was natürlich verärgern soll.
Aha, jetzt verstehe ich: Weil es auch Scherzprogramme gibt, die sowas machen, darf man das natürlich nicht. Alles klar

Vielleicht solltest du besser den TE darüber befragen oder aufklären, wie sinnvoll oder sinnlos sein Unterfangen ist? Ich bin dafür die falsche Adresse, denn ich würde sowas nicht in mein Programm einbauen, außer der Auftraggeber wünscht das ausdrücklich. Aber darum ging's ja auch gar nicht, sondern um die Frage, wie man das realisieren könnte.
  Mit Zitat antworten Zitat
Gerd01

Registriert seit: 18. Mär 2005
Ort: NRW
117 Beiträge
 
Delphi XE2 Professional
 
#8

AW: PopupMenu - Item vorselektieren

  Alt 17. Dez 2013, 07:52
Ich mache es so:

Code:
    for I := 0 to PMHighlight.Items.Count - 1 do
      PMHighlight.Items[I].Checked := false;
    I := ..hier Auswahl
    if ((I > 0) and (I < PMHighlight.Items.Count)) then
      PMHighlight.Items[I].Checked := True;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: PopupMenu - Item vorselektieren

  Alt 17. Dez 2013, 08:04
Moin,

was hat Checked (das kleine Häkchen/Pünktchen) mit der Selektierung zu tun?

Egal ob und was wie bei Checked gesetzt ist, der Eintrag, dessen Klick-Methode ausgeführt wird, ist vollkommen unabhängig davon.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
eholzer

Registriert seit: 22. Okt 2009
51 Beiträge
 
#10

AW: PopupMenu - Item vorselektieren

  Alt 17. Dez 2013, 08:31
Zitat:
OK, nach dem anzeigen des Popups, könnte man versuchen die Tastendrücke zu simulieren
Das wäre auch meine Idee, aber wie könnte man das machen?
  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 10:37 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