1

ファイルのリストを含める必要がある ListBox があります。ユーザーが 1 つまたは複数のファイルを選択し、ファイルを ListBox にドラッグ アンド ドロップする機能が必要です。ファイルがドロップされると、ファイル名でアイテムが作成されます。これは問題なく動作しますが、問題は、ListBox 内で動的に作成されたアイテムにファイルをドラッグ アンド ドロップすると、ファイル アイコンがデスクトップに「ゴースト」として描画されたままになることです。詳細については、次のスクリーンショットを確認してください。

スクリーンショット 1

スクリーンショット 2

この「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;
4

0 に答える 0