Capslock/Feststelltaste

Wie kann ich überprüfen ob die capslock(Feststell)taste gedrückt ist.

procedure on Edit1keydown (…)
begin
if ((shift=[ssShift]) or (shift= ??? )) then do irgendwas;
end;

Hallo cybertom,

schau mal in der Delphi Hilfe unter Virtuelle Tastencodes.
Dort findest du für die Feststelltaste den Code VK_CAPITAL.

Manfred

// Damit die Application die Ereignisse abfangen kann
Tform1 = Class(Tform)

Public
procedure GetEventsMessage(var Msg: tagMSG;var Handled: Boolean);

end;

Implementation
var bbCaplock : Boolean;

Procedure ApplyKeyDown(Key : Integer);
begin
if not CashActive then exit;
With frmMain do
Case Key of
13 : ;//Enter gedrückt
20 : bbCaplock := Not bbCaplock;
end;
if bbCaplock then
MessageDlg(Caplock is on.’, mtInformation,
[mbOk], 0);
end;

procedure TForm1.GetEventsMessage(var Msg: tagMSG;var Handled: Boolean);
begin
if not CashActive then exit;
Case Msg.message of
WM_LButtonDown : ;
WM_KeyDown : ApplyKeyDown(Msg.Wparam);// Taste gedrückt
WM_MOUSEMOVE : ;
WM_LBUTTONUP : ;
WM_LBUTTONDBLCLK : ;
WM_RBUTTONDOWN : ;
WM_RBUTTONUP : ;
WM_RBUTTONDBLCLK : ;
WM_MBUTTONDOWN : ;
WM_MBUTTONUP : ;
WM_MBUTTONDBLCLK : ;
WM_MOUSEWHEEL : ;
end;

end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
bbCaplock := False;
//Damit die Application Ereignisse anfangen kann
Application.OnMessage := GetEventsMessage;
end;

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]