Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.316 Beiträge
Delphi 12 Athens
|
Re: Dispose von Recorddaten in Combobox
8. Jul 2009, 21: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;
Ein Therapeut entspricht 1024 Gigapeut.
|