Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.171 Beiträge
 
Delphi 12 Athens
 
#2

Re: Dispose von Recorddaten in Combobox

  Alt 8. Jul 2009, 20:02
Delphi-Quellcode:
var
  I: Integer;
  LangCode: TLangRec;
begin
  for I := LangCombo.Items.Count - 1 downto 0 do
  begin
    // hier legst du eine Kopie der Daten an
    LangCode := TLangRec(LangCombo.Items.Objects[I]);
    ...
    // und hier versuchst du die Variable "LangCode" freizugeben, welche
    // auf dem Stack liegt und nicht die Variable in der ComboBox
    Dispose(PLangRec(LangCode));
  end;

Delphi-Quellcode:
var LangCode: PLangRec;
begin
  New(LangCode);
  // dereferenzierung nicht nötig, daß macht hier Delphi automatisch
  LangCode.LangCode := '1031';
  // und hier darf nicht dereferenziert werden
  LangCombo.Items.AddObject(LanguageName, TObject(LangCode));
end

var
  I: Integer;
  LangCode: PLangRec;
begin
  for I := LangCombo.Items.Count - 1 downto 0 do
  begin
    //
    LangCode := PLangRec(LangCombo.Items.Objects[I]);
    Showmessage(LangCode.LangCode);
    Dispose(LangCode);
  end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat