TCustomForm.onHide et/ou TTimer récalcitrant ?
Bonjour,
Voici un programme ultra-simple qui ne comporte que deux Forms et un timer (inverval:=1000). Timer1 est placé sur Form1 et il n'y a rien sur Form2.
Lorqu'on lance l'application, Form1 apparait et Form2 est alternativement visible pendant 1 seconde et cachée pendant 1 seconde. Tout cela est normal.
Si on clique sur le contrôle "réduire" (minimize) de la barre des titres de Form1, cette Form1 devient cachée, ce qui est normal. Mais Form2 continue imperturbablement à être alternativement visible et cachée, au lieu de cesser de réapparaître.
La propriété onHide de Form1, qui engage la procédure TForm1.FormHide, ne semble donc pas fonctionner, à moins que cela ne vienne d'un timer récalcitrant à bien vouloir s'arrêter ?
Code:
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
| unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,menus,ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormHide(Sender: TObject);
private
{ Déclarations privées}
public
{ Déclarations publiques}
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.DFM}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if form2.visible=true then form2.visible:=false else form2.visible:=true;
end;
procedure TForm1.FormHide(Sender: TObject);
begin
timer1.enabled:=false;
Form2.visible:=false;
end;
end. |