Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: ListBox Item verstecken?

  Alt 29. Aug 2022, 20:46
Keine Datenhaltung in der Anzeige. (Index der Komponente ist vollkommen egal)
C und D fehlen, dennoch keine Probleme damit.

Items löschen, einfügen, verschieben, sortieren, umbenennen (z.B. Mehrsprachigkeit) ... alles keine Problem.

Delphi-Quellcode:
ListBox1.Items.AddObject('A', TObject(0));
ListBox1.Items.AddObject('B', TObject(1));
ListBox1.Items.AddObject('E', TObject(4));

ListBox1.Items.IndexOf('E') == 2
NativeInt(ListBox1.Items.Objects[2]) == 4
Es ist zwar als TObject deklariert, aber in der LISTBOX (WinAPI) ist es bloß ein dummer "Integer". MSDN-Library durchsuchenCB_SETITEMDATA


Falls du keine bösen Casts magst, dann nimm eben ein Datenobjekt dafür.
Delphi-Quellcode:
type
  TDataObject = class
    Index: Integer;
    constructor Create(AIndex: Integer);
  end;

ListBox1.Items.AddObject('A', TDataObject.Create(0));
ListBox1.Items.AddObject('B', TDataObject.Create(1));
ListBox1.Items.AddObject('E', TDataObject.Create(4));

ListBox1.Items.IndexOf('E') == 2
TDataObject(ListBox1.Items.Objects[2]).Index == 4

// und die Freigabe natürlich nicht vergessen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (29. Aug 2022 um 21:02 Uhr)
  Mit Zitat antworten Zitat