Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi tlist - itemindex selber setzten (https://www.delphipraxis.net/59381-tlist-itemindex-selber-setzten.html)

meisteralex 21. Dez 2005 14:13


tlist - itemindex selber setzten
 
Hi Leute:
habe einen array von dem ich manche elemente (also nicht alle) in eine liste setzte, wenn sie entsprechenden kriterien entsprechen.
nun möchte ich aber, dass sie dort den selben index haben wie im array, sprich, wenn ein arrayelement nicht dem listenkriterium entsprich , soll auch dieser listindex in der liste ausgelassen werden
ich möchte also quasi bei list1.additem den index nicht hochzählen lassen, sondern selber setzten

dahead 21. Dez 2005 14:23

Re: tlist - itemindex selber setzten
 
das wird nicht gehen, es sei denn du fügst leere items zur liste.

ich würde dir empfehlen einfach (via records z.b.) den ItemIndex der ersten Liste mit zu speichern um später darauf zuzugreifen.

meisteralex 21. Dez 2005 14:24

Re: tlist - itemindex selber setzten
 
hmmm, einde codebeispiel vielleicht ?

dahead 21. Dez 2005 14:27

Re: tlist - itemindex selber setzten
 
da ich deine routinen nicht kenne, kann ich dazu schlecht ein beispiel machen. außerdem wüsste ich nicht zu welcher methode?

theoretisch:

Delphi-Quellcode:
TDatenInfo = record
  Data: String; // oder was auch immer
  ID: Integer; // dein alter itemindex
end;

TDatenInfoArray = Array of TDatenInfo;
Sobald du nun ein Item in deine vorherige Liste geaddet hast, erhöhst du hier die Array Größe und übergibst die Infos an das Record.
Am besten wäre es du verwendest SetLength nur einmalig vor dem adden aller items (da es sonst recht lange dauern kann).

meisteralex 21. Dez 2005 14:36

Re: tlist - itemindex selber setzten
 
hmm also quasi sowas wie nen zuordnungsarray ?

setlength(integerarray,maxneuerindex);
integerarray[alterindex] := neuerindex;

wäre ja das gleiche oder ?

dahead 21. Dez 2005 14:44

Re: tlist - itemindex selber setzten
 
Zitat:

Zitat von meisteralex
hmm also quasi sowas wie nen zuordnungsarray ?

ja.
Zitat:

Zitat von meisteralex
setlength(integerarray,maxneuerindex);
integerarray[alterindex] := neuerindex;
wäre ja das gleiche oder ?

wie meinst du das?

---

nochmal eine frage: was für daten willst du speichern/anzeigen? sind es strings? könntest du nicht auf die liste verzichten, indem du den Items bspw. eine Eigenschaft á la fVisible: Boolean verpasst und sie dann einfach beim anzeigen in der (nehme mal an:) ListView übergehst?

Grishnak 21. Dez 2005 15:21

Re: tlist - itemindex selber setzten
 
Ich denke, dass es mit einer TList klappen könnte:

Anfangs per "MyList.Count := Length(MyArray)" die Anzahl der Listenelemente setzen (die dann alle leer sind!)

Die einzelnen Items dann per "MyList.Insert()" einfügen. Hier kannst du die Einfügeposition selbst angeben!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 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