![]() |
Dispose von Recorddaten in Combobox
Hiho,
ich habe folgendes Problem: ich füge einer combobox ein record mit folgendem code hinzu:
Delphi-Quellcode:
hier nun das problem:
type
TLangRec = record LangCode: String; end; PLangRec = ^TLangRec; .. var LangCode: PLangRec; begin New(LangCode); LangCode^.LangCode := '1031'; LangCombo.Items.AddObject(LanguageName, TObject(LangCode^)); end;
Delphi-Quellcode:
Das Showmessage funktioniert ohne probleme aber bei dem Dispose knallts dann mit ner zugriffsverletzung!
var
I: Integer; LangCode: TLangRec; begin for I := LangCombo.Items.Count - 1 downto 0 do begin LangCode := TLangRec(LangCombo.Items.Objects[I]); Showmessage(LangCode.LangCode); //das funktioniert noch.. Dispose(PLangRec(LangCode)); //bääääm end; Das Showmessage habe ich nur testweise eingebaut um zu gucken ob der überhaupt was brauchbares macht. edit: ich verwende Delphi 2009 auf Windows 7 x64 und das neueste FastMM4 |
Re: Dispose von Recorddaten in Combobox
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; |
Re: Dispose von Recorddaten in Combobox
dankeschön für die prompe hilfe ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz