ファイルのリストを含める必要がある ListBox があります。ユーザーが 1 つまたは複数のファイルを選択し、ファイルを ListBox にドラッグ アンド ドロップする機能が必要です。ファイルがドロップされると、ファイル名でアイテムが作成されます。これは問題なく動作しますが、問題は、ListBox 内で動的に作成されたアイテムにファイルをドラッグ アンド ドロップすると、ファイル アイコンがデスクトップに「ゴースト」として描画されたままになることです。詳細については、次のスクリーンショットを確認してください。
この「sample.txt」アイコンはデスクトップに残ります。誰が私が間違っているのか教えてもらえますか?
これは、ドラッグ アンド ドロップ操作に使用されるコードです。
procedure TTestForm.FileListBoxDragDrop(Sender: TObject; const Data: TDragObject;
const Point: TPointF);
var
i: integer;
item: TListBoxItem;
begin
try
FileListBox.BeginUpdate;
for i := Low(Data.Files) to High(Data.Files) do begin
Item := TListBoxItem.Create(Self);
Item.Text := ExtractFileName(Data.Files[i]);
Item.Parent := FileListBox;
end;
finally
FileListBox.EndUpdate;
end;
end;
procedure TTestForm.FileListBoxDragOver(Sender: TObject; const Data: TDragObject;
const Point: TPointF; var Accept: Boolean);
begin
Accept := True;
end;