AGB  ·  Datenschutz  ·  Impressum  







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

ImageList und ListView speichern

Offene Frage von "delphinia"
Ein Thema von delphinia · begonnen am 3. Apr 2006 · letzter Beitrag vom 8. Apr 2006
Antwort Antwort
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#1

ImageList und ListView speichern

  Alt 3. Apr 2006, 15:12
Hallo liebe leser...

Stehe vor dem Problem, das ich gerne die Icons einer TimageList speichern würde. aber nicht nur einfach speichern sondern es muss ein Bezug zu dem ListView Eintrag zusätzlich gespeichert werden.

So das ich beim Laden weis - aha icon XY gehört zu ListView Item XY ....

Ergo muss da irgendow noch ein Bezug rein nur wüsst ich nicht wie

Könnt Ihr mir helfen?
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
WoTo

Registriert seit: 28. Jun 2004
Ort: Rotenburg (Wümme)
102 Beiträge
 
Delphi 2005 Enterprise
 
#2

Re: ImageList und ListView speichern

  Alt 3. Apr 2006, 19:03
Hallo delphinia,
du mußt dem ListItem ein SubItem zuordnen und dem SubItem mit
AListitem.SubItems.AddObject(AName,AIcon); ein Objekt geben.

Also nochmal etwas genauer:
Delphi-Quellcode:
// ListviewItem erstellen
AListItem := AListView.Items.Add;
// Objekt in SubItem speichern
AListItem.SubItems.AddObject(AIcon.Name,AIcon);
anschließend kann man sich das Objekt wieder laden:

Delphi-Quellcode:
AListItem := AListView.Selected;
AIcon := TIcon(AListItem.SubItems.Objects[AListItem.SubItems.IndexOf(AName)]);
Ich hoffe dir damit ein wenig geholfen zu haben.
Ansonsten könnte man TListView ableiten und eine StringListe hinzufügen:
Delphi-Quellcode:
TListViewEx = class(TListView)
private
  FIconList: TStringList;
public
  property IconList : TStringList read FIconList write FIconList;
end;
und dann jedesmal beim Erstellen eines ListItems ein Icon-Objekt der StringListe geben. Die StringListe darf aber nicht sortiert sein, da sonst der Bezug zur Listview verloren geht.

MfG
Woto
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: ImageList und ListView speichern

  Alt 3. Apr 2006, 19:07
Mein Problem oder mein Verständnisproblem ist folgendes - weshalb ich die Icons mit Bezug zu dem ListView Item speichern möchte.

Ich verschiebe die Icons in der Liste ich lösche oder füge Icons hinzu ....


Und wie Du bei Deinem Beispiel schriebst geht das alles nicht wenn die Liste Sortiert wird! hmmm
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: ImageList und ListView speichern

  Alt 3. Apr 2006, 19:11
Man sollte immer die zugrundeliegenden Datenstrukturen von der Bedienoberfläche entkoppeln. Denn dann kannst du die Datenstruktur speichern und bist unabhängig von der Oberfläche. So bald man versucht Kontrollelemente zur Datenhaltung zu nutzen, sollte man das gesamt Konzept überdenken und ihm gescheite Datenstrukturen zugrundelegen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: ImageList und ListView speichern

  Alt 3. Apr 2006, 19:14
Zitat von Luckie:
Man sollte immer die zugrundeliegenden Datenstrukturen von der Bedienoberfläche entkoppeln. Denn dann kannst du die Datenstruktur speichern und bist unabhängig von der Oberfläche. So bald man versucht Kontrollelemente zur Datenhaltung zu nutzen, sollte man das gesamt Konzept überdenken und ihm gescheite Datenstrukturen zugrundelegen.
was genau heist? - sorry aber das war mir gerade ein wenig zu hoch .....

Wie kann ich ne ImageList von eriner ListView entkoppeln?
Die gehören doch zusammen???
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
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
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: ImageList und ListView speichern

  Alt 3. Apr 2006, 19:49
hmm ein bisschen hab ich verstanden. nur noch nicht so ganz wie ich das auf mein Problem umsetzten kann
bez. woher ich denn dann nun weis das die Record ID die ID XY vom Image ist und umgedreht...

Aber Du hast recht derzeit muss ich wenn ich nen Item verschiebe ne Funktion aufrufen damit auch das Icon in der ImageList verschoben wird!

Ich muss wohl erst einmal gestehe, dass ich gerade einmal 2 Monate mit Delphi mich versuche und hin udn wieder (so wie jetzt) hab ich das gefühl das ich dem nicht gewachsen bin!
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: ImageList und ListView speichern

  Alt 8. Apr 2006, 00:31
hmm also ich versteh das mit den Records nicht - hat jemand gute links zu Beispielen, die zu meinem Problem passen.? ich habe noch nie mit Records gearbeitet ;(


Danke Euch
Doreen
Gruss Doreen
  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 06:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz