Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by DeddyH,
8. Feb 2013
Man könnte in LiesEintrag auch noch auf Assigned abfragen, bevor man auf die Properties zugreift ;) Und wie vorher schon gesagt: im OnDeletion der ListView das Objekt in Data wieder freigeben, das sollte IMO passen.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by DeddyH,
8. Feb 2013
Procedure ErzeugeEintrag(Value: Int64);
var
Int64Obj: TInt64Obj;
Begin
Int64Obj := TInt64Obj.Create(value);
With MyListView.Items.Add Do
Begin
Caption:=FormatFloat('0,', FileSize);
Data := Int64Obj;
SubItems.Add(FileName);
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by DeddyH,
8. Feb 2013
Nochmal zum Unterschied: im Beispielcode wurde wie gesagt der Pointer dazu missbraucht, eine 4-Byte-Zahl zu hinterlegen, der Pointer an sich zeigte aber nirgends hin. Du kannst aber natürlich einen echten Pointer dort ablegen, der auch auf echte Daten zeigt, ob da nun 8 oder 2.000.000 Bytes dahinterstecken, spielt keine Rolle. Zum Freigeben dieser Daten dürfte dann das OnDeletion-Ereignis der...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by DeddyH,
8. Feb 2013
Das ist doch mal eine nützliche Erweiterung. Unter Delphi 2007 gibt es das Event noch nicht, unter XE aber schon, es muss also irgendwann dazwischen eingeführt worden sein.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by DeddyH,
8. Feb 2013
Wenn Du wirklich Pointer(45) einträgst, was willst Du denn da freigeben? Hier wurde ja nur ein harter Cast dazu verwendet, eine Zahl in einer Pointer-Property zu hinterlegen, der Pointer selbst zeigt ja ins Nirwana. Von daher wäre es sogar gefährlich, eine Freigabe zu versuchen, da man gar nicht weiß, auf welchen Speicher man eigentlich zeigt.