いつもお世話になっています。
ヘルプでは「DropTarget プロパティを true に設定すると,リストビューのその他のすべての項目の Default プロパティが false に設定されます。」
とあるのですが、他のアイテムのターゲット状態が戻りません。
もともとは、The Drag and Drop Component Suite for Delphi 「DropFileTarget.OnDragOver」内での動作だったのですが、
最小限にするために TListView と TListBox のみでテストしています。
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
ListView1.ViewStyle:=vsReport;
for i:=0 to 9 do
begin
ListView1.Items.Add.Caption:=IntToStr(i);
ListBox1.items.Add(IntToStr(i));
end;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
begin
ListView1.Items[ListBox1.ItemIndex].DropTarget:=True;
end;
↓が希望の描画です
var
i:integer;
begin
for i:=0 to ListView1.Items.Count - 1 do
ListView1.Items[i].DropTarget:=i=ListBox1.ItemIndex;
ちなみに TTreeView の場合は全く問題なく希望通りの描画になります。
問題が、Delphi 側なのか OS のメッセージなのか確認するため、
LVIS_DROPHILITED を直接送ってみたりもしましたが変化ありませんでした。
なにか情報をお持ちでしたらお教えください。