1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| unit Unit1;
(* Application et fenêtre de style Windows 11 grâce à W11.res
avec un OnMessage pour éviter l'effacement de certains contrôles comme les
boutons, cases à cocher, ...
mettre {$R 'W11.res' 'W11.rc'} au début du dpr, après Program
copier procedure MessagesAppli(var Msg: TMsg; var Handled: Boolean); dans le private
de la fenêtre principale,
et Application.OnMessage := MessagesAppli; dans le Create de la fenêtre principale
*)
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
CheckBox1: TCheckBox;
RadioButton1: TRadioButton;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
procedure MessagesAppli(var Msg: TMsg; var Handled: Boolean);
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ ===========================================================================}
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := MessagesAppli;
end;
{ ===========================================================================}
procedure TForm1.MessagesAppli(var Msg: TMsg; var Handled: Boolean);
// On utilise les codes virtuels de l'IME par exemple
// pour pouvoir récupérer les touches Ctrl et Alt dans le onKeyDown
begin
if (Msg.message = WM_KEYDOWN) Then // Pour neutraliser Ctrl + Alt
if GetAsyncKeyState(VK_Control) < 0 then
Begin
Msg.message := WM_SYSKEYDOWN ;
Msg.wParam := VK_KANA ;
End ;
if Msg.message = WM_SYSKEYDOWN then // Pour Neutraliser Alt
begin
If Msg.wParam <> VK_KANA Then Msg.wParam := VK_JUNJA
Else Msg.wParam := VK_HANJA ;
end;
end;
{ ===========================================================================}
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Caption := '' ;
If Key = VK_JUNJA Then Caption := 'Alt a été appuyé' ;
If Key = VK_HANJA Then Caption := 'Ctrl + Alt ont été appuyés' ;
If Shift = [ssCtrl] Then Caption := 'Ctrl a été appuyé' ;
// et aussi les autres touches ...
end;
{ ===========================================================================}
procedure TForm1.Button1Click(Sender: TObject);
begin
Close ;
end;
{ ===========================================================================}
end. |
Partager