Вопрос № 39452: Здраствуй народ. Решил попробывать написать используя WinAPI подпрограммку для Delphi копирование файла через функцию ShFileOperation. Создал окно, также через WinAPI, но скрестиь эти функции не получается. Никакой информации в окне не выводиться при...
Вопрос № 39.452
Здраствуй народ. Решил попробывать написать используя WinAPI подпрограммку для Delphi копирование файла через функцию ShFileOperation. Создал окно, также через WinAPI, но скрестиь эти функции не получается. Никакой информации в окне не выводиться при копировании. Как правильно должен быть организован этот процес?
Отвечает: Артём Шегеда
Здравствуйте, Карасев Алексей Александрович!
Вообще-то файловые операции оболочки отвязаны от формы... Пример их использования здесь: http://www.swissdelphicenter.ch/torry/showcode.php?id=152 (проверено: работает, однако добавили ещё одну функцию для переименования)
Надеюсь ты ознакомился с описанием функции SHFileOperation и структуры SHFILEOPSTRUCT (TShFileOpStruct)
Ответ отправил: Артём Шегеда (статус: 5-ый класс)
Ответ отправлен: 05.04.2006, 15:36
Отвечает: mix_mix
Здравствуйте, Карасев Алексей Александрович!
Правильно делаете, что переходите к WinAPI. Так, класс окна Вы зарегистрировали, окно Вы создали, сообщения обрабатываете, надеюсь... Возможно вы неправильно заполняете структуру SHFILEOPSTRUCT. Но я бы сам сделал, да и Вам советовал бы реализовывать подобное через CopyFileEx. В поле lpProgressRoutine нужно помещать указатель на callback-функцию (в Delphi, по моему, будет @function) которая будет вызываться при изменении прогресса копирования. CopyFileEx куда более динамичная функция, которую можно приспособить
под себя гораздо лучше, нежели SHFileOperation. Не нужно бояться более сложных вещей, они не так уж страшны (вы еще не использовали NativeAPI, не писали драйвера :)
Ответ отправил: mix_mix (статус: 1-ый класс)
Ответ отправлен: 05.04.2006, 18:29