Вверх ↑
Разработчик
Ответов: 26067
Рейтинг: 2121
#1: 2022-01-23 13:21:07 ЛС | профиль | цитата
TheRenat писал(а):
Вот.

Ну, первое, что увидел:
полезно для Select = Multi, так-как из-за этого onExecute вызывается для каждого файла
onExecute и должен вызываться для каждого файла, это задумано априори, тк onExecute выдает имя файла в поток. А onExecuteEnd придуман для того, КМК, чтобы сказать нам, что выдача файлов закончилась, и надо с ними что-то делать.
КМК, имя и описание точки должно быть таким:
*onMultiExecuteEnd=Событие происходит после выдачи всех имен файлов событием onExecute при множественном выборе (Select = Multi)|2|

--- Добавлено в 2022-01-23 13:40:45

Второе:
Должно быть не так
    if Lst.Count = 1 then
begin
_hi_CreateEvent(_Data, @_event_onExecute, S);
_hi_OnEvent(_event_onExecuteEnd);
end
else
Должно быть наоборот -- _hi_CreateEvent должен всегда ставиться последним и обязательно после _hi_OnEvent
    if Lst.Count = 1 then
begin
_hi_onEvent(_event_onExecute, S);
_hi_CreateEvent(_Data, @_event_onMultiExecuteEnd);
end

--- Добавлено в 2022-01-23 13:43:40

Короче, я вижу компонент вот так (версия 1.13), и все прекрасно работает.
карма: 22

0
файлы: 1ODialog1.13.zip [1.7KB] [234]
Редактировалось 4 раз(а), последний 2022-01-23 13:44:26