Пётр Кушнир писал(а):
Порекомендую вам изучить демку прямо сейчас, она к висте не имеет отношения.
Не поверите, но мне вообще не надо в своём приложении обрабатывать оконные события, обращаться к Services.actionHook. В демке как раз использование общих, доступных средств. вместо вывода в лог вы можете вызывать Dialog.Update для интерактора прогресс-бара.
Посмотрел вашу реализацию, в общем понятно что и как работает. Единственное, что у Вас модуль ...Client занимается отправкой файла, а мне же требуется скачивать файл.
Я понимаю, что чтобы сделать скачивание нескольких файлов в общем случае не нужны ни Services.actionHook, ни обработка оконных сообщений. Просто мне кажется, что с перенесением работы в функцию Do и использованием очереди получается немного запутанно, если новичек будет читать такой код, то он не сразу разберется. Согласен что с очередью очень хорошее решение, а главное правильное, при текущих ограничениях BlackBox-а.
Но у меня возникла мысль, что, возможно, как-то можно обойтись без очереди.
Цель была такой, чтобы код выглядел примерно так:
Установить адрес скачиваемого файла;
Начать скачивание файла в фоновом режиме;
Дождаться завершения скачивания файла;
Установить адрес другого скачиваемого файла;
Начать скачивание файла в фоновом режиме;
...
Но оказалось, что сделать функцию "Дождаться завершения скачивания файла", которая не будет блокировать работу всей среды, не так-то просто, а без нее получается, что 2 файла будут скачиваться параллельно, что иногда не очень желательно, особенно, если файлов не 2, а 50 или даже больше.