Einzelnen Beitrag anzeigen

Benutzerbild von Rakshasa
Rakshasa

Registriert seit: 1. Nov 2003
182 Beiträge
 
Delphi 2007 Professional
 
#1

VirtualTreeView: Header Drag'n Drop

  Alt 1. Dez 2009, 22:37
Hallo Leute,

ich habe hier ein Problem, von dem ich nicht weiß, ob's ein Bug oder ein Feature ist:

Ich habe bei meinem VirtualStringTree das Dragging von Columns aktiviert, das funktioniert natürlich auch automatisch.
Wenn ich nun aber in der Methode
Code:
 HeaderDragged(Sender: TVTHeader; Column: TColumnIndex; OldPosition: Integer);
Column und OldPosition mir anschaue, so sind beide immer vollkommen identisch. Warum ist das so? Müsste in OldPosition nicht der Start-Spaltenindex der Drag'n Drop Vorganges gespeichert sein?

Weiteres:

Wenn die Columns nun über Drag'n Drop verschiebe, so werden ja auch die jeweiligen Werte der Spalten richtig verschoben, soweit in Ordnung (also wenn ich Spalte A nach B verschiebe, so verschieben sich auch die Werte von A nach B). NWenn ich nun aber alle Columns in einer Schleife abfrage:

Code:
For x := 0 to vst.header.Columns.Count -1 do begin
  Showmessage(Vst.header.Columns[x].Text);
end;
Dann ist die Reihenfolge immer noch die alte, d.h. die Werte und Spaltenüberschriften werden zwar der nach neuen (verschobenen) Reihenfolge angezeigt, aber wenn ich die neue Reihenfolge über eine Schleife ermitteln will, so erhalte ich immer noch die alten Positionen. Irgendwie scheint es so, als ob die dargestellte (also defacto verschobene) Reihenfolge nicht über die Eigenschaft .Columns abgefragt werden kann?

Kann mir jemand erklären, ob das so ist? Und warum? :-/
  Mit Zitat antworten Zitat