Показать сообщение отдельно
  #5  
Старый 21.11.2016, 17:36
r302coder r302coder вне форума
Прохожий
 
Регистрация: 10.02.2015
Сообщения: 4
Версия Delphi: 7,2009
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
После создания директории на диске она видимо не учитывается в пути до перетягиваемых файлов, поскольку при получении папка для проводника выглядит только как нулевой файл с меткой папки - похоже ещё нужно добавлять её имя перед именем файла или может перейти в неё

то что она не учитывается это понятно,
в этом и вопрос как это дело связать (виртуальную папку с виртуальными файлами), чтобы файлы транслировались в дропнутую папку.
я просто не силён в OLE API и всё что связанно с IDataObject, IShellFolder ... и т.д.

Цитата:
Сообщение от Alegun
без примера кода процедуры перетаскивания конкретики не видно

на счёт кода, c компонентом http://rouse.drkb.ru/files/fwoledragdrop.zip в комплекте идёт пример dropsource , там показывается пример с перетаскиванием виртуальных файлов из ресурсов программы.
примера с папкой нет, единственное что нашёл в коде самого компонента это
Код:
procedure TFWDataObject.AddFolder(const FileName: string);
var Descriptor: TFileDescriptor;  j:integer;
begin
  ZeroMemory(@Descriptor, SizeOf(TFileDescriptor));
  Descriptor.dwFlags := FD_ATTRIBUTES;
  Descriptor.dwFileAttributes := FILE_ATTRIBUTE_DIRECTORY;
  Move(FileName[1], Descriptor.cFileName[0], Length(FileName) * SizeOf(Char));
  AddDescriptor(Descriptor);
end;

Так вот, папку то получается создать, а как в это дело файлы транслировать не представляю. Сам TFWDataObject это типа надстройка над оригинальным IDataObject.
TFWDataObject = class(TInterfacedObject, IDataObject)
Ответить с цитированием