Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#8

AW: Klasse als parameter übergeben Const, Var, ...

  Alt 3. Feb 2023, 12:59
Kann es sein, dass du die Instanz beim Refresh noch aus der Liste entfernen musst, wenn LoadFromDB fehlschlägt? Der Datensatz kann ja vielleicht zwischenzeitlich gelöscht worden sein.

Da die Reihenfolge in der Liste offenbar keine Rolle spielt, wäre vielleicht ein TObjectDictionary<Integer, TMyClass> für MyClassList die geschicktere Wahl. Dann schrumpft das GetMyClass etwas zusammen:

Delphi-Quellcode:
function GetMyClass(iID: Integer; bRefresh: Boolean): TMyClass;
begin
  if MyClassList.TryGetValue(iID, Result) then begin
    if not LoadFromDB(Result, iID) then
    begin
      MyClassList.Remove(iiD);
      Result := nil;
    end;
  end
  else
  begin
    Result := TMyClass.Create;
    if LoadFromDB(Result, iID) then
      MyClassList.Add(iID, Result)
    else
      FreeAndNil(Result);
  end
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat