Bonjour,
J'ai besoin de minimiser une application entière (fiche principale et secondaire) et de les restaurer.
J'utilise pour cela : la méthode Application.minimize et le composant "TApplicationEvents" + son événement "OnRestore" car j'ai un traitement à exécuter quand l'application vient d'être restaurée.
Tous se passe bien, tant que tous cela est exécute depuis la fiche principale, car c'est elle qui reçoit l’événement "OnRestore".
Mais je dois exécuter ces actions depuis des "boutons" qui sont sur une fiche secondaire et qui est modale. Depuis cette fiche modale les actions de "minimiser" et "restaurer" fonctionnent, mais je ne "capte" pas l’événement "OnRestore" ce qui semble normal, il est traité par la fiche principale. Remarque: si la fiche n'est pas modale, la fichie reçoit bien enlèvement
Les actions "Minimiser" et "Restaurer" peuvent être traitées dans la fiche principale, seul leur exécution doivent l'être depuis une fiche secondaire et modale.
J’exécute donc des fonctions qui se trouvent dans la fiche principale , mais depuis une fiche secondaire, pensant que cela réglerait le problème,
Mais non même comme cela, si je lance les routines qui se trouvent dans la fiche principale depuis une fiche secondaire, l’événement "OnRestore" n'est pas déclenché dans la fiche principale.
Un peu de code très simple ci-dessous pour mieux comprendre le problème
code fiche principale:
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 Uses...Unit2,.... .... implementation {$R *.dfm} Procedure TForm1.Mini; begin Edit1.text:=''; Application.Minimize; end; procedure TForm1.ApplicationEvents1Restore(Sender: TObject); begin Edit1.text:='OnRestore =>ok'; Application.Restore; Application.BringToFront; end; procedure TForm1.MinimiseClick(Sender: TObject); begin Mini; end; procedure TForm1.Showfiche2Click(Sender: TObject); begin form2.showModal; end; end.
Fiche secondaire
J’exécute l'application, tant que form2 est fermé , si je clique sur "Form1.MinimiseClick" cela fonctionne, et je capture bien évènement "OnRestore".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 implementation {$R *.dfm} uses Unit1; procedure TForm2.MinimiseClick(Sender: TObject); begin Form1. Mini; end; end.
Si clique sur le bouton qui affiche form2, Si je clique sur "Form2.MinimiseClick" cela fonctionne, mais form1 ne vois plus l'évènement "OnRestore" => qui est mon problème.
A la recherche d'une solution , idée, merci d'avance.
Partager