Цитата:
Сообщение от 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)