1

我有一个需要包含文件列表的 ListBox。我需要用户选择一个或多个文件而不是将文件拖放到 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