Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#45

Re: Record zurücksetzen (löschen)

  Alt 14. Sep 2008, 15:26
Zitat von Hansa:
Bei verschachtelten Records läuft das genauso.

Delphi-Quellcode:
    MyRecord : record
      nr : Integer;
      name : string [10];
      MyRecord2 : record
        nr : Integer;
        name : string [10];
      end;
    end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MyRecord.nr := 1;
  MyRecord.name := 'XYZ';
  MyRecord.MyRecord2.nr := 2;
  MyRecord.MyRecord2.name := 'XYZ2';
  memo2.Lines.Add(IntToStr(MyRecord.nr));
  memo2.Lines.Add('*'+MyRecord.name+'*');
  memo2.Lines.Add('');
  FillChar (MyRecord,SizeOf (MyRecord),0);
  memo2.Lines.Add(IntToStr(MyRecord.nr));
  memo2.Lines.Add('*'+MyRecord.name+'*');
  memo2.Lines.Add(IntToStr(MyRecord.MyRecord2.nr));
  memo2.Lines.Add('*'+MyRecord.MyRecord2.name+'*');
end;
Ergebnis : Anhang. In diesem Beispiel ist auch das Finalize völlig überflüssig.
Zitat von SubData:
Hatten wir nicht gerade, dass bei globalen Variablen mit der Methode ein MemoryLeak auftritt ?!
Dieses Beispiel ist in diesem Thread hier total fehl am Platz. Dadurch, dass Hansa jetzt in seinem Record Shortstrings benutzt hat, gibts das Problem natürlich nicht. ShortStrings sind eben keine Pointer. Von daher ist ein Finalize tatsächlich nicht nötig. Was Hansa jetzt damit sagen/verdeutlichen will, weiß ich allerdings nicht. Mir scheint, als hätte er nicht verstanden, worum es hier in dieser Diskussion geht.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat