![]() |
TListView mit AutoArrange - Reihnfolge?!?
Hallo!
Ich hab ein TListView das in der IDE schon einen Eintrag enthält. Wenn nun zur Laufzeit weitere Einträge hinzugefügt werden (mit .Items.add) dann werden die Einträge in verkehrter Reihenfolge dargestellt. Also angenommen der IDE-Eintrag ist "huhu" und ich füge 1,2 und 3 dann zeigt das ListView 3 2 1 huhu Ein Insert an's Ende mit lvPrinters.Items.Insert(lvPrinters.Items.Count+1); bringt auch nix, selbes Ergebnis. Copy-paste ich das ListView in ein anderes Projekt, dann funktioniert es einwandfrei. Füge ich allerdings in dem anderen Projekt einen Eintrag mit dem IDE-Eintragseditor hinzu, dann dreht sich die Reihnfolge aller Elemente im Listview um. Ich kapier' das nicht!!! Hilfe! --- Ah: Gerade gemerkt: Das Problem in der IDE tritt nur auf bei OwnerDraw=True, aber warum macht das einen Unterschied?!? |
AW: TListView mit AutoArrange - Reihnfolge?!?
hmmm... hab einen (dirty) Workaround gefunden.
Zum reproduzieren das auf ein Furmular einfügen:
Code:
und hier der OnDblClick-Event:
object ListView1: TListView
Left = 0 Top = 0 Width = 303 Height = 88 Align = alTop Columns = <> IconOptions.AutoArrange = True Items.ItemData = { 03200000000100000000000000FFFFFFFFFFFFFFFF00000000FFFFFFFF000000 000366006F006F00} OwnerDraw = True TabOrder = 0 OnDblClick = ListView1DblClick ExplicitWidth = 643 end
Delphi-Quellcode:
Bleiben die letzen beiden Zeilen auskommentiert sieht man genau das Fehlverhalten der ListView. (Nach einem Doppelklick in's ListView steht da "B A foo".
procedure TForm1.ListView1DblClick(Sender: TObject);
var lv : TListView; listitem : TListItem; begin lv:=Sender as TListView; listItem:=lv.Items.Add; listItem.Caption:='A'; listItem:=lv.Items.Add; listItem.Caption:='B'; // lv.IconOptions.AutoArrange:=False; // lv.IconOptions.AutoArrange:=True; end; Kommentiert man die Zeilen ein, dann läuft alles wie es soll. ("foo A B") Wie gesagt, das löst das Problem, aber es ist halt ein Workaround bei dem ich nicht ganz verstehe warum er nötig ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz