Autor Beitrag
Markos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Mi 18.08.04 10:23 
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Mi 18.08.04 11:00 
:?!?:
Also das tuts bei mir (D7PE) einwandfrei:
ausblenden 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

_________________
JSXGraph
firus1983
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 170

Win98,XP,
D6 Entrpr
BeitragVerfasst: 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:

_________________
Veni Vidi Codi !
Ich kam, sah, und programmierte !
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: 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

_________________
JSXGraph
firus1983
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 170

Win98,XP,
D6 Entrpr
BeitragVerfasst: 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".
ausblenden 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]

_________________
Veni Vidi Codi !
Ich kam, sah, und programmierte !
rochus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: 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!

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean