Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Drag Drop ListView kurz vor Verzweifelung

  Alt 14. Mär 2007, 19:17
Hallo TUX,

ich glaube meine grauen Zellen arbeiten schon wieder besser. Ich habe mit dem Aufruf der folgenden Prozedur im Ereignis OnEndDrag() gute Erfolge erzielt:

Delphi-Quellcode:
procedure ResetDropHighlight(lv: TListView);
var
  i: Integer;
begin
  with lv do
  for i := 0 to VisibleRowCount do
    if i >= Items.Count then
      Exit else
    if Items[TopItem.Index + i].DropTarget then
    begin
      Items[TopItem.Index + i].DropTarget := False;
      Exit;
    end
end;
Ich habe mich gefragt, warum dein Problem bei virtuellen ListViews verschwindet, wenn das Ereignis OnDragDrop() ausgelöst wird. Den VCL-Autoren war aufgefallen, dass die Nachricht LVM_GetNextItem von virtuellen ListViews nicht erwartungsgemäß verarbeitet wird. Sie behandeln allerdings nur den ordnungsgemäß beendeten Drag-Vorgang, ein Abbruch bleibt unbehandelt. Das Testen überlasse ich dir.

Freundliche Grüße
  Mit Zitat antworten Zitat