ensuite
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 ITest = interface ['{8BAC43A7-9083-4736-8912-708AF5D684A7}'] function BonAlors: Boolean; end; TTest = class(TInterfacedObject, ITest) function BonAlors: Boolean; destructor Destroy; override; end; { TTest } function TTest.BonAlors: Boolean; begin result := True; end; destructor TTest.Destroy; begin Form1.Memo1.Lines.Add('Destr'); inherited; end;
je voudrait qu'il affiche 'destroy' avant d'afficher 'fin', cependant, VarTest := Unassigned ne semble pas provoquer la libération de la référence. Il faut attendre de sortir de la fonction pour que 'destroy' soit affiché.
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 procedure TForm1.Button1Click(Sender: TObject); var VarTest: Variant; IntTest, IntTest2: ITest; testu: IUnknown; begin Memo1.Clear; IntTest := TTest.Create; VarTest := IntTest as IUnknown; IntTest := nil; VarTest := Unassigned; Memo1.Lines.Add('fin'); end;
Qqn a une explication ?
Partager