![]() |
Wie Entertaste bei Button abfangen?
Hallöchen,
kurze Frage. Möchte durch drücken der Entertaste automatisch zum nächsten Editfeld weiterspringen. Soweit funktionert das auch ganz wie ich es möchte. Nur wenn ich auf einen Button komme welcher nunmal innerhalb der Editfelder auf meinem Form in der TabOrder kommt und ich die Entertaste drücke um zum nächsten Editfeld zu kommen wird der Button gedrückt/ausgelöst. Arrrgs. :wall: Habe es schon im OnKeyDown versucht mit:
Delphi-Quellcode:
aber irgendwie wills nicht so wie ich will. Wie löse ich das am besten?
If Key = VK_RETURN then Key := 0;
Mir reicht es schon wenn ich die Leertaste drücke damit der Button gedrückt/ausgelöst wird und das tuts ja schon von Haus aus. Danke schonmal, Markus |
Re: Wie Entertaste bei Button abfangen?
Moin Markus,
nur mal so als Idee: Wenn Du mit der Entertaste von einem Feld zum nächsten springst, wirst Du Dir ja auch eine Reihenfolge überlegt haben, in der die Felder angesprungen werden sollen. Also könnstest Du einfach bei Enter den Fokus direkt setzen (Editxxx.SetFocus). |
Re: Wie Entertaste bei Button abfangen?
Die Reihenfolge hab ich mir wie Du sagst überlegt. Und wird auch nach und nach richtig abgearbeitet und auch die beiden Button sind in der TabOrder drin weil ich auch dort hin muß. Nur hab ich eben das Problem sobald ich auf nem Button angekommen bin und ich Enter für das nächste DLGCtrl (hoffe ich schreib das jetzt richtig) drücke es so interpretiert wird wie wenn ich mit der Maus auf den Button klicke. Da muß es doch was geben wo dies unterbindet und der Button nur gedrückt wird wenn ich die Leertaste drücke. Brauch das weil es noch einige PC's gibt welche keine Maus haben wo das drauf laufen soll.
|
Re: Wie Entertaste bei Button abfangen?
Anwender die mit PC's ohne Maus arbeiten arbeiten in aller Regel mit der Tabtaste. Nicht umsonst heißt das Property auch TabStop, weil es eben mit der Tabtaste angesprungen werden kann. Man sollte also die Bedienführung windowsmäßig lassen. So das Enter auführen des Buttons ist und Tab zum springen von einem Control zum nächsten. Du könntest noch vesuchen ob es beim Button ein OnKeyPress oder ähnliches gibt.
|
Re: Wie Entertaste bei Button abfangen?
Ist mir schon klar das dies von der Standart Windowsdingsbums weit weg ist. Aber die Anwendergruppe auf welche es abzeilt gibt ein paar Zahlen über den Zehnerblock ein und drückt halt nunmal gern die Entertaste auf dem Zehnerblock um zum nächsten Eingabefeld zu kommen. Die Tab-Taste kennen die da zum Großteil nicht weil die das auch von anderer Software so gewöhnt sind. :-( Leider. Im KeyPress passiert genau das gleiche.
|
Re: Wie Entertaste bei Button abfangen?
Zitat:
|
Re: Wie Entertaste bei Button abfangen?
*grins* Genau so seh ich das auch aber wie stell ich das an? Der Button wehrt sich. *lol*
|
Re: Wie Entertaste bei Button abfangen?
Ich würde dann einfach vorschlagen keinen Button zu verwenden sondern selbst eine Komponente zu schreiben. Oder im OnClick des Buttons zu prüfen ob die Entertaste gerade gedrückt ist.
|
Re: Wie Entertaste bei Button abfangen?
Zitat:
|
Re: Wie Entertaste bei Button abfangen?
Zitat:
Du kannst es im OnKeyPress so lösen.
Delphi-Quellcode:
engine
procedure TForm1.LabeledEdit2KeyPress(Sender: TObject; var Key: Char);
begin case Ord(Key) of 13 : begin //Wenn RETURN [13] gedrückt wurde LabeledEdit3.SetFocus; //Den Fokus an das nächste Steuerelement key := #0; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 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