Einzelnen Beitrag anzeigen

Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#2

AW: TListView mit AutoArrange - Reihnfolge?!?

  Alt 16. Feb 2012, 09:48
hmmm... hab einen (dirty) Workaround gefunden.

Zum reproduzieren das auf ein Furmular einfügen:

Code:
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
und hier der OnDblClick-Event:

Delphi-Quellcode:
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;
Bleiben die letzen beiden Zeilen auskommentiert sieht man genau das Fehlverhalten der ListView. (Nach einem Doppelklick in's ListView steht da "B A foo".
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.
  Mit Zitat antworten Zitat