AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ListView Data befüllen?

Ein Thema von SneakyBagels · begonnen am 4. Jun 2017 · letzter Beitrag vom 5. Jun 2017
Antwort Antwort
Seite 2 von 3     12 3   
SneakyBagels
(Gast)

n/a Beiträge
 
#11

AW: ListView Data befüllen?

  Alt 4. Jun 2017, 17:33
Man muss es nicht kennen. Das hier ist wie gesagt Testcode und mehr gibt es aktuell nicht in diesem Testprojekt.
Wenn ich TStringList statt eine TObjectList<TListViewData> verwende, dann muss ich immer wenn ich auf ein Object von TStringList zugreife diesen Aufruf mit TListViewData() casten.
Das fällt bei der TObjectList<> eben weg.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: ListView Data befüllen?

  Alt 4. Jun 2017, 17:36
Achso, das liegt daran, dass es sich um eine generische Liste handelt, der Typ also von vornherein bekannt ist. Sofern es sich bei den Strings um eindeutige Werte handelt, käme auch noch ein TDictionary in Betracht, schneller geht es dann kaum noch. Allerdings muss man dann auch die Objekt selbst freigeben.
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
SneakyBagels
(Gast)

n/a Beiträge
 
#13

AW: ListView Data befüllen?

  Alt 4. Jun 2017, 17:39
Die Caption ist für jedes ListView-Item immer eindeutig. SubItems können jedoch gleiche Werte enthalten.
Beispiel

[ TestEintrag | C:\123 | Ja | Automatisch ]
[ EinAndererEintrag | C:\123 | Nein | Semi ]
[ RandomText | D:\exec | Nein | Automatisch ]

Alles, bis auf die erste Spalte, kann gleich sein.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: ListView Data befüllen?

  Alt 4. Jun 2017, 17:42
Dann könntest Du wie gesagt auch ein TDictionary nehmen mit einem String als Key und Deiner Klasse als Value.
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
SneakyBagels
(Gast)

n/a Beiträge
 
#15

AW: ListView Data befüllen?

  Alt 4. Jun 2017, 17:44
Das habe ich noch nie verwendet. Wie würde ich das in diesem Testfall denn deklarieren?
Die IDE schlägt mir vor TDictionary<TKey,TValue>; Mh schade IndexOf gibt es nicht =/

Geändert von SneakyBagels ( 4. Jun 2017 um 17:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: ListView Data befüllen?

  Alt 4. Jun 2017, 17:48
Aus dem Kopf:
Delphi-Quellcode:
type
  TDeinForm = class(TForm)
  private
    FListe: TDictionary<string, TDeineKlasse>;

...

//Eintrag hinzufügen
FListe.AddOrSetValue(DasWasInDerCaptionSteht, DieInstanzDahinter);

//Eintrag auslesen
if FListe.TryGetValue(DasWasInDerCaptionSteht, DeineKlasse) then
  DeineKlasse.MachWas;

//Instanzen im Dictionary freigeben
for DeineKlasse in FListe.Values do
  DeineKlasse.Free;
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
SneakyBagels
(Gast)

n/a Beiträge
 
#17

AW: ListView Data befüllen?

  Alt 4. Jun 2017, 17:53
Wenn ich TryGetValue ausführe, wie komme ich denn dann an den Index des gefundenen Items heran?
Oder ist das gar nicht erst möglich, da das Dictionary mit Hashes arbeitet und wahrscheinlich eh sortiert ist?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: ListView Data befüllen?

  Alt 4. Jun 2017, 17:58
Es gibt keinen Index, und sortiert ist ein TDictionary auch nicht. Brauchst Du das unbedingt?
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
SneakyBagels
(Gast)

n/a Beiträge
 
#19

AW: ListView Data befüllen?

  Alt 4. Jun 2017, 18:03
Eigentlich nicht. Denn wenn ich mit TObjectList einmal das Item habe welches ich möchte, arbeite ich ja nur noch mit den dort hinterlegten Daten.
Ich baue gleich mal meinen Testcode mit TDictionary um und gucke wie es sich verhält.

Du sagtest "schneller geht es nicht".
Würde man überhaupt einen Unterschied zwischen TObjectList und TDictionary merken?
Es handelt sich hier um weniger als 50 ListView-Einträge.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: ListView Data befüllen?

  Alt 4. Jun 2017, 18:03
Bei der Menge wird der Unterschied nicht messbar sein, behaupte ich einfach mal. Aber wenn Du generell über Strings in Deiner Liste suchst, ist das IMO der bequemste Zugriff.
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
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:14 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