AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Integer in ListItem eines ListViews speichern

Ein Thema von hoika · begonnen am 15. Nov 2006 · letzter Beitrag vom 8. Feb 2013
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.663 Beiträge
 
Delphi 12 Athens
 
#1

AW: Integer in ListItem eines ListViews speichern

  Alt 8. Feb 2013, 12:57
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 ListView die richtige Stelle sein, wenn ich nicht irre.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Integer in ListItem eines ListViews speichern

  Alt 8. Feb 2013, 13:55
Richtiger wäre also so etwas in der Art:
Delphi-Quellcode:
Interface

Type
   TInt64Obj = Class(TObject)
               Private
                  FValue : Int64;
               Public
                  Constructor Create(Const Value: Int64);
                  Property Value: Int64 Read FValue Write FValue;
               End;

Implementation

Constructor TInt64Obj.Create(Const Value: Int64);
Begin
   Inherited Create;
   FValue:=Value;
End;

Procedure ErzeugeEintrag(Value: Int64);
Begin
   With MyListView.Items.Add Do
   Begin
      Caption:=FormatFloat('0,', FileSize);
// Data:=Pointer(FileSize); // <- reicht nicht aus, wie festgestellt wurde.
//
// Wie bekomme ich mein Int64 in das Item?
//
// Es gibt im Gegensatz zu z.B. TCheckListBox kein Items.AddObject();
// in TCheckListBox hatte ich z.B. mal neben dem Eintrag weitere Strings gespeichert...
      SubItems.Add(FileName);
   End;
End;

Function LiesEintrag(Index: Integer): Int64;
Begin
   Result:=TInt64Obj(MyListView.Items[Index].Data).Value;
End;
Alex Winzer

Geändert von Schwedenbitter ( 8. Feb 2013 um 14:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.663 Beiträge
 
Delphi 12 Athens
 
#3

AW: Integer in ListItem eines ListViews speichern

  Alt 8. Feb 2013, 13:59
Delphi-Quellcode:
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);
   End;
End;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Integer in ListItem eines ListViews speichern

  Alt 8. Feb 2013, 14:20
So klappt es - tausend Dank.
Ich habe den Code im Beitrag davor auch noch bereinigt, was das LiesEintrag; anbelangt.
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.663 Beiträge
 
Delphi 12 Athens
 
#5

AW: Integer in ListItem eines ListViews speichern

  Alt 8. Feb 2013, 14:26
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:44 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