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