Announcement

Collapse
No announcement yet.

PopUp-Menü - Auswahl mit Enter

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • PopUp-Menü - Auswahl mit Enter

    Vorbemerkung: In meinem Programm gibt es nur eine einzige Eingabezeile. Das Programm überprüft die Eingabe und weist sie dann dem entsprechenden Datenfeld zu. Nun gibt es ein Problem mit zwei Feldern, bei denen die Automatik versagen muss, da eine Überprüfung nicht möglich ist. In diesem Fall wird ein PopUp-Menü aufgerufen und der Anwender muss entscheiden, in welches Feld die Eingabe dann eingetragen wird. An einem Beispiel will ich das verdeutlichen. Wenn es sich um ein Telefonverzeichnis handeln würde, könnten Vorwahlnummern an der Null erkannt werden, Anschlussnummern an der fehlenden Null. Straßen-Namen an einem einer Zeichenkette mit Ziffern am Ende etc. Nur bei Namen und Wohnorten würde die Automatik versagen, da sie ja das gleiche Zeichenformat haben. Wenn in diesem Beispiel also 'Bonn' eingegeben würde, erschiene das PopUp-Menü. Im Programm sind die default-Werte natürlich vorbelegt. Nun taucht ein Problem auf. Ich kann entweder den ersten Buchstaben zur Auswahl benutzen (funktioniert) oder mit den Cursortasten oder Maus einen anderen Menüpunkt auswählen/anclicken (funktioniert) nicht aber den default-Wert mit Enter sofort übernehmen! Das geht erst, wenn ich einen Menüpunkt angewählt habe. Was kann ich machen, um den voreingestellten Menüpunkt sofort mit Enter zu übernehmen?

    Vielen Dank

  • #2
    Hallo,

    ich habe das so gelöst, dass ich den Default-Eintrag als ersten platziere.

    Im OnPopUp-Event verwende ich:
    <pre>var iPos : TPoint;
    begin
    GetCursorPos(iPos);
    SetCursorPos(iPos.x + 5,iPos.y + 5);
    end;
    </pre>

    So ist immer automatisch der 1. Eintrag selektiert und kann mit ENTER gewählt werden.

    Gruß Ul

    Comment


    • #3
      Lieber Uli Becker,

      nach den Osterferien will ich mich zunächst bedanken.

      Welche Cursorposition ist gemeint?

      Vielen Dan

      Comment


      • #4
        Hallo,

        GetCursorPos ermittelt die aktuelle Position des Mauszeigers auf dem Bildschirm. Ich bin davon ausgegangen, dass das Popup-Menü mit der rechten Maustaste aufgerufen wird.

        Falls nicht, ist ja bekannt, an welcher Stelle das Popup-Menü erscheint. Dort kann man dann mit SetCursorPos den Mauszeigen platzieren.

        Gruß Ul

        Comment

        Working...
        X