Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - VK= TAB
Markos - Mi 18.08.04 10:23
Titel: VK= TAB
Hallo,
ich möchte in einem Tedit abfragen ob die Taste TAB gedrückt wurde. Dies wird laut Hilfe mit OnKeyPress und dann VK = Tab gemacht. Leider wird auch mit der Tab Taste in das nächste Edit Fenster gesprungen.
Ich möchte konkret das im TEdit1 bei betätigung der TAB Taste eine Procedure ausgeführt wird und danach der Focus in das nächste TEdit2 springt.
Bisher konnte ich es nur so lösen das bei Return die Procedure ausgeführt wird und wenn ich TAB drücke springt er ins nächste TEdit.
Bin für jeden Tip dankbar, den speziell zu diesem Thema habe ich hier im Forum nichts gefunden. Danke.
Markos
raziel - Mi 18.08.04 11:00
:?!?:
Also das tuts bei mir (D7PE) einwandfrei:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.Edit2KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_TAB then showmessage('blubb'); end; |
raziel
firus1983 - Mi 18.08.04 16:10
Wenns dir nur darum geht die Reihenfolge festzulegen kannst du auch auf deiner form rechtsklicken und mit dem Eintrag "Tabulatorreihenfolge" die Reihenfolge beim betätigen von TAB festlegen.
@raziel:
hab deinen code mal unter D6 Enterprise geprüft und es funktioniert nicht wirklich.... hab noch eini bisschen rumprobiert, aber leider erfolglos :cry:
raziel - Mi 18.08.04 16:26
firus1983 hat folgendes geschrieben: |
@raziel:
hab deinen code mal unter D6 Enterprise geprüft und es funktioniert nicht wirklich.... hab noch eini bisschen rumprobiert, aber leider erfolglos :cry: |
Was genau funktioniert denn nicht? Ich drück Tab und er springt ins nächste Edit und dann ploppt ein "blubb" auf... Halt so wie es soll...
raziel
firus1983 - Do 19.08.04 08:08
Hab rausgefunden warum es evt. nicht so klappt.
Die TAB-Taste geht Standartmäßig (scheinbar) IMMER erst mal ins nächste Feld/Button etc. Allerdings kann man festlegen, das jede Tastatureingabe zunächst erstmal an die Form geleitet wird und nich an die gerade aktive Komponente "geschickt".
Delphi-Quelltext
1:
| Form1.KeyPreview:=True |
(geht auch im Objectinspector.:mrgreen:)
Dann könntest du bei dem Keypress/KeyUp/KeyDown-Ereignis (Je nachde, was dir am besten gefällt :mrgreen: ) der Form die TAB Taste abfragen und deinen Code ausführen.
Falls du wirklich nur bei deinem Edit1-Feld den Code ausführen willst, musst du zusätzlich abfragen, welche Komponente den Focus hat.
[not testet]
rochus - Fr 10.12.04 15:51
raziel hat folgendes geschrieben: |
Was genau funktioniert denn nicht? Ich drück Tab und er springt ins nächste Edit und dann ploppt ein "blubb" auf... Halt so wie es soll...
raziel |
Delphi 7 Enterprise:
das blubb kommt dann, wenn du per tab in das edit gesprungen bist, nicht, wenn du rausgesprungen bist!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!