30. april 2010 - 18:32Der er
7 kommentarer og 1 løsning
Nemmeste og rigtigste metode til at fange tastesekvens
Hvad er den nemmeste og mest rigtige metode til at fange en bestemt taste sekvens i Delphi? Jeg har brug for at kunne fange at brugeren trykker CTRL+ALT+S
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du får begge muligheder. Hvis du kun har en form så kan du benytte FormKeyDown muligheden, husk at sætte formens KeyPreview=true. Hvis du har flere forme så brug MyOnMessage muligheden.
type TForm1 = class(TForm) procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormCreate(Sender: TObject); private { Private declarations } procedure MyOnMessage(var Msg: TMsg; var Handled: Boolean); public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin { if (Key=83) then if (GetKeyState(VK_CONTROL)<0) and (GetKeyState(VK_MENU)<0) then showmessage('CTRL+ALT+S');} end;
procedure TForm1.FormCreate(Sender: TObject); begin Application.OnMessage:=MyOnMessage; end;
procedure TForm1.MyOnMessage(var Msg: TMsg; var Handled: Boolean); begin if Msg.message=WM_KEYDOWN then begin if (Msg.wParam=83) and (GetKeyState(VK_CONTROL)<0) and (GetKeyState(VK_MENU)<0) then begin showmessage('CTRL+ALT+S'); Handled:=true; end; end; end;
Kroning har svaret på dit spørgsmål! jf. dit #2 og løsningen virker ligegyldigt hvor mange forms du har.
Hvis dit spm. skulle handle om at ctrl+alt+s skulle aktivere et af dine vinduer, ligegyldig hvilken applikation der er aktiv, skal du nok stille et nyt spørgsmål.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.