Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - VK_TAB geht nicht (fast) alle anderen schon


Zimond - So 10.09.06 14:46
Titel: VK_TAB geht nicht (fast) alle anderen schon
Moin.

Ich durchsuche mir hier im Forum schon nen Wolf um raus zubekommen wie ich bestimmte Funktionstasten abfragen kann. Die häufigste Antwort ist in einem OnKeyDown ereigniss reinzuhaben :


Delphi-Quelltext
1:
if key = vk_irgendwas then ....                    


Das funktioniert ja auch mit so ziemlich jeder Taste (Esc, enter, pfeiltasten ect) nur aber nicht mit der Tabulator Taste, da diese das OnKeyDown Event überhaupt nicht erst auslöst. Ich habe auch etwas über die Einstellung keypreview auf der Form gelesen, welche man auf True setzen muss, auch dass hilft nichts und laut Delphi Hilfe hat diese Einstellung bei Tasten wie eben TAB auch gar keine Wirkung.

Das einzige was mir ansonsten einfiele wäre eine Timer gesteuerte DirectInput Abfrage, aber das kann es doch nicht sein...


Lannes - So 10.09.06 15:13

Hallo,

:arrow: CM_DIALOGKEY abfangen.

Etwa so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
//...
private
  procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
//...
procedure TForm1.CMDialogKey(var Message: TCMDialogKey);
begin
  with message do begin
    case charcode of
    vk_tab: showmessage('Tab ausgelöst');
    else
      inherited;//Standardverhalten sicherstellen
    end;
  end;
end;


Zimond - So 10.09.06 15:19

vielen dank für die prompte und explizite Antwort. Funzt perfekt :)