Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: ImageList und ListView speichern

  Alt 3. Apr 2006, 19:24
Nehmen wir an wir haben in einem Listview zwei Spalten: Name und dazugehörige E-Mail Adresse. Wenn ich jetzt an eine Person eine Mail schicken will, sollte man nicht auf die zweite Spalte im Listview zugreifen, sondern auf eine Datenstrucktur, die der Ansicht im Listview zugrundeliegt. Zum Beispiel ein Array of Record:
Delphi-Quellcode:
type
  TKontakt = record
    ID: Integer;
    Name: String[255];
    Mail: String[255];
  end;
Wobei ID der Index des Eintrages im Listview sein kann. Schiebst du jetzt noch eine Spalte dazwischen, musst du nicht überall gucken, wo du auf die zweite Spalte zugreifst und dies in die dritte Spalte ändern, weil die E-Mail Adresse ja jetzt in der dritten Spalte steht. Natürlcih musst du jetzt darauf achten, dass die Eintrage synchron sind mit der zurgrundeliegenden Datenstruktur. Dieser Aufwand ist aber zu verschmerzen. Und je komplexer die Datenstrukturen sind, desto mehr Probleme bekommst du, wenn du Kontrollelemente zur Datenhaltung missbrauchst.

Die ImageList gehgört zum Listview. Aber die einzelnen Einträge der ImageList gehören ja irgendwie zu deinen Daten. Und wenn du an den Daten was änderst, soll sich ja auch das Icon aus der ImageListe ändern:

Delphi-Quellcode:
type
  TFoobar = record
    Item: ...;
    ImageIndex: Integer;
  end;
Änderst du jetzt waqs im Listview führst du auch die Änderung in deiner Datenstruktur durch. Und wenn du dann den Listview aus der Datenstruktur füllst, weißt du immer welches Icon aus der ImageListe zu deinem Eintrag gehört, weil du ja den Index mit deinem Eintrag gespeichert hast.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat