Delphi

comment utiliser les touches de clavier pour fermer une fenete
en mode d'execution dans une application.(par exple echape)

2 réponses

  1. 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.
    0
    1. 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.

      @+
      0