"Прерывание импорта файлов при перетаскивании из Outlook в Virtual Tree View"Delphi , Синтаксис , ДеревьяПрерывание импорта файлов при перетаскивании из Outlook в Virtual Tree View При перетаскивании вложений из Outlook в Virtual Tree View, импорт файлов может занять некоторое время, что приводит к замораживанию приложения Outlook до завершения функции импорта. В этой статье мы рассмотрим, как прервать операцию перетаскивания в середине функции импорта. Проблема При перетаскивании файлов из Outlook в Virtual Tree View, импорт файлов занимает некоторое время, что приводит к замораживанию приложения Outlook до завершения функции импорта. Нужно уметь прерывать операцию перетаскивания в середине функции импорта. Код Вот пример кода, который демонстрирует проблему:
Альтернативный ответ Одним из альтернативных решений является сохранение списка файлов в переменной класса формы, отправка пользовательского сообщения в оконную процедуру и выход из процедуры перетаскивания. Затем список обрабатывается в обработчике пользовательского сообщения. Подтвержденный ответ Обычно информация из события перетаскивания извлекается (но не обрабатывается), а затем отправляется сообщение обратно на форму о наличии новой информации для обработки. Событие перетаскивания таким образом выходит довольно быстро, и обработчик сообщений затем обрабатывает все, что было перетащено. В вашем случае можно сделать следующее:
Примечание: Возможно, придется сделать переменную fileList типа TStringList и скопировать информацию туда, чтобы убедиться, что ссылка на IStringList не заканчивается, когда событие перетаскивания выходит. Но общий принцип остается прежним - не обрабатывайте данные в событии перетаскивания, отложите это на потом, после того, как событие перетаскивания выйдет. При использовании этого подхода обработка данных начнется позже в цикле сообщений. Пользователь все еще не сможет отменить обработку, но по крайней мере, приложение Outlook не будет заблокировано. Если блокировка tanto получающего, как и отправляющего приложения является проблемой, то следует рассмотреть возможность внедрения очереди и/или фонового потока. Суть в том, чтобы выйти из события перетаскивания как можно скорее, чтобы освободить "блокировку" от отправляющего приложения. При перетаскивании вложений из Outlook в Virtual Tree View, импорт файлов может занять некоторое время, что приводит к замораживанию приложения Outlook до завершения функции импорта, и требуется возможность прерывать операцию перетаскивания в середине фун Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |