Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Listview Item an bestimmter Stelle hinzufügen


Christoph Englmann - Di 14.09.04 14:47
Titel: Listview Item an bestimmter Stelle hinzufügen
Hallo,

möchte einer Listview eine Zeile an einer bestimmten Stelle (i-te Zeile (welche zur Laufzeit ermittelt wird)) hinzufügen...
(also nicht einfach unten dranhängen, dies wäre nur möglich, wenn ich die listview nach dem ersten Subitem sortieren könnte (wobei ich leider auch nicht weiss wie das geht....))

hab folgendes Versucht:

zuerst wird die Stelle i ermittelt, an welcher die Zeile eingefügt werden soll und dann mittels

[delphi]
lstviewTGL.Items.Add;
lstviewTGL.items[i].caption := cboTGL_2.Text;
lstviewTGL.items[i].subitems.add (cboSZP.text);
lstviewTGL.items[i].subitems.add (PRG);
lstviewTGL.items[i].subitems.add (BTF);
lstviewTGL.items[i].subitems.add (txtOffset.Text);
lstviewTGL.items[i].subitems.add (Betriebsart);
lstviewTGL.items[i].subitems.add (txtBemerkung.Text);
[/deplphi]

versucht die zeile einzufügen, dass einzige, was jedoch geschieht ist, dass am ende der listview eine leere zeile eingefügt wird...
mit
[delphi]
lstviewTGL.Items.Add;
lstviewTGL.items.item[i].caption := cboTGL_2.Text;
lstviewTGL.items.item[i].subitems.strings[0] := cboSZP.text;
usw.
[/deplphi]

erfolgt zwar der gewünschte Eintrag, leider wird jedoch logischerweise der dort vorhandene Eintrag überschrieben....geht also auch net...


danke

christoph


CenBells - Di 14.09.04 15:20

hi,

schau dir mal items.insert an. Oder versuche es mit items.move.

Gruß
KEn


Christoph Englmann - Di 14.09.04 16:22

vielen dank,

hier ist die lösung:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
lstviewTGL.items.Insert(i).caption := cboTGL_2.Text;
lstviewTGL.items[i].subitems.add (cboSZP.text);
lstviewTGL.items[i].subitems.add (PRG);
lstviewTGL.items[i].subitems.add  (BTF);
lstviewTGL.items[i].subitems.add (txtOffset.Text);
lstviewTGL.items[i].subitems.add (Betriebsart);
lstviewTGL.items[i].subitems.add (txtBemerkung.Text);


christoph