Bonjour,
Toutes mes MdiChild (plus d'une centaine) dérive d'un TmaForm, dérivant lui même du TForm de base.
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 unit Reserv_Frm; interface uses Windows ..... type TFrmReserv = class(TmaForm) .... end; var FrmReserv: TFrmReser; .....
Pour fermer mes MdiChild, j'utilise un action:=cafree dans ma form mère
et dans le destroy, je met self a nil
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TmaForm.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 procedure TmaForm.FormDestroy(Sender: TObject); begin ... self:=nil; end;
malheureusement, la variable de mon MdiChild ( FrmReserv ) ne passe pas a nil, je ne comprend pas pourquoi, alors que le self dans la class mère est bien a nil lui.
j'ai essayé par une procédure de notification dans la Main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 procedure TMain.Notification(AComponent: TComponent; Operation: TOperation); begin inherited; If (Operation = opRemove) and (AComponent is TForm) then begin AComponent := Nil; if AComponent<>nil then AComponent := Nil; end; end;
sans plus de succès.
Dois_je repasser sur ma centaine de fiche pour mettre a nil manuellement mes mdichild ?
j'ai remarqué tout de même que dans ces dernières, les attributs fname, owner sont tout de même vide, mais ce n'est pas suffisant pour moi
cordialement
Partager