A voir également:
- Delphi
- Telecharger delphi 7 - Télécharger - Langages
- Bde delphi - Télécharger - Édition & Programmation
- Delphi pause - Forum Delphi
- Numéro de série delphi 7 - Forum Delphi
- Delphi 6 - Forum Delphi
2 réponses
mmm... tu peux utiliser l'évènement 'OnKeyDown' (ou qqchose comme ça, je n'ai pas Delphi sous les yeux) et dans la méthode, mettre un application.terminate() pour fermer l'application.
ce que te propose sebsauvage fonctionne mais sous certaines conditions :
-le composant doit recevoir le focus
-le composant doit evidemment avoir une gestionnaire d'événement OnKeyDown
l'inconvénient est que si tu veux généraliser la procédure tu risques d'appliquer ton bout (application.terminate) de code pour chaque composant.
voici une alternative avec fermeture par ECHAP (peu importe le composant recevant le focus) :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
//rajoute ceci
procedure AppMessage(var msg: TMsg; var handled: boolean);
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//rajoute ceci
procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
case msg.message of
WM_KEYDOWN:
begin
if (Msg.wParam = 27) then //touche ECHAP
application.Terminate;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//et enfin rajoute ceci
Application.OnMessage := AppMessage;
end;
end.
@+
-le composant doit recevoir le focus
-le composant doit evidemment avoir une gestionnaire d'événement OnKeyDown
l'inconvénient est que si tu veux généraliser la procédure tu risques d'appliquer ton bout (application.terminate) de code pour chaque composant.
voici une alternative avec fermeture par ECHAP (peu importe le composant recevant le focus) :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
//rajoute ceci
procedure AppMessage(var msg: TMsg; var handled: boolean);
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//rajoute ceci
procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
case msg.message of
WM_KEYDOWN:
begin
if (Msg.wParam = 27) then //touche ECHAP
application.Terminate;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//et enfin rajoute ceci
Application.OnMessage := AppMessage;
end;
end.
@+