Mit folgender Procedure funktionierst:
Delphi-Quellcode:
procedure TMobilePIM.Free;
begin
if assigned(FTimer) then
begin
fTimer.Enabled := false;
FreeAndNil(fTimer);
end;
inherited Free();
end;
So aufgerufen:
Delphi-Quellcode:
procedure TfrmContactDetails.FormDestroy(Sender: TObject);
begin
if Assigned(fPim) then //fPim = TMobilePIM
begin
fPim.OnRefreshData := nil;
fPim.Free;
fPim := nil;
end;
end;
Eine letzte Frage dazu. fPim.Free und fPim := nil funktionieren ja - wieso funktioniert FreeAndNil(fPim) nicht? Bei FreeAndNil wird nicht! die Procedure TMobilePIM.Free aufgerufen.