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
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.
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".
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.