Podpowiedz

 avatar
user_6919294
pascal
25 days ago
1.4 kB
4
Indexable
// Zrób tak

// Zamiast AnimationStopFirst: Boolean = True; SetParentNil: Boolean = False ustaw brak domyslnnych wartosci
procedure SafeFree(var Obj: TObject; AnimationStopFirst: Boolean; SetParentNil: Boolean); overload;
var
  Anim: TFloatAnimation absolute Obj;
  Component: TFmxObject absolute Obj;
begin
  if Assigned(Obj) then
  begin
    if AnimationStopFirst and (Obj is TFloatAnimation) then
      Anim.Stop;

    if SetParentNil and (Obj is TFmxObject) then
      Component.Parent := nil;

    FreeAndNil(Obj);
  end;
end;
procedure SafeFree(var Obj: TObject; SetParentNil: Boolean = True);  overload;
var
  Anim: TFloatAnimation absolute Obj;
  Component: TFmxObject absolute Obj;
begin
  if Assigned(Obj) then
  begin
    if SetParentNil and (Obj is TFmxObject) then
      Component.Parent := nil;

    FreeAndNil(Obj);
  end;
end;

procedure TMainForm.CleanupResources;
begin
  // zwalnianie zasobow -----------------------------------------------------

  // 1 Animacje
  SafeFree(TObject(FCpuAnim), True, True);
  SafeFree(TObject(FMemoryAnim), True, True);

  // 2 Wskaźniki i tła
  SafeFree(TObject(FCpuIndicator));
  SafeFree(TObject(FMemoryIndicator));
  SafeFree(TObject(FCpuBackground));
  SafeFree(TObject(FMemoryBackground));

  // 3 Monitor zasobów
  FreeAndNil(FResourceMonitor);

  // -------------------------------------------------------------------------
end;
Editor is loading...
Leave a Comment