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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager