salut
j'ai un form1 MDIForm
et form2 et form3 son MDIChild
et j'ai :
bouton2 pour afficher la form form2
bouton3 pour afficher la form form3
bouton1 pour fermer et libérer l'espace mémoire de tous les MDIChild
Je veux libérer et fermer complètement l'espace mémoire de tous les MDIChild
Quand j'appuie sur le bouton1 les MDIChild sont fermer
Mais quand j'appuie à nouveau sur le bouton2 ou bouton3 le message(la form2 est active) est afficher donc les MDIChild sont restés "Assigned"
Quelle est la solution pour les MDIChild ne restez pas "Assigned" Quand ils sont fermés ???
voila le code du bouton2:
voila le code du bouton3:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 procedure Tform1.Button2Click(Sender: TObject); begin if Not Assigned(form2) then begin Application.CreateForm(Tform2, form2); form2.Show; end else showmessage('la form2 est active'); end;
le code de l'evenement onClose de la form2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 procedure Tform1.Button3Click(Sender: TObject); begin if Not Assigned(form3) then begin Application.CreateForm(Tform3, form3); form3.Show; end else showmessage('la form3 est active'); end;
le code de l'evenement onClose de la form3:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure Tform2.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end;
voila le code du bouton1:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure Tform3.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 procedure Tform1.Button1Click(Sender: TObject); var i:integer; begin for i := MDIChildCount - 1 downto 0 do begin MDIChildren[i].Close; MDIChildren[i].Free; MDIChildren[i].Release; end; end;
Partager