Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

Re: AcessViolation?

  Alt 18. Mär 2010, 19:45
Ich hätte da noch einen Vorschlag für das Design deiner Funktion:

Das macht man so nicht:
Delphi-Quellcode:
function TuWas1 : TStrings;
begin
end;
Besser:
Delphi-Quellcode:
procedure TuWas2( StrLst : TStrings );
begin
end;
Grund:

Hier kann es knallen ... und könnte nur mit einem try...except abgefangen werden
Delphi-Quellcode:
procedure TestVonTuWas1;
  var
    sl : TStrings;
  begin
    sl := TuWas;
    // sl kann jetzt initialisiert sein, muss aber nicht
    sl.Free; // <- hier kann es zu einer AV kommen
  end;
Hier habe ich das Erzeugen und Zerstören selber in der Hand
Delphi-Quellcode:
procedure TestVonTuWas2;
  var
    sl : TStrings;
  begin
    sl := TStringList.Create;
    try
      TuWas2( sl );
    finally
      sl.Free;
    end;
  end;
Zu den IDs und der Stringlist ... das geht so naja

Der richtige Weg führt über entsprechende Daten-Klassen die in einer ObjectList gespeichert werden.
Den ListView-Inhalt lässt man einfach virtuell von der ObjectList füllen.

Stichworte dazu Delphi-Referenz durchsuchenTListView.OwnerData Delphi-Referenz durchsuchenTListView.OnData
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat