Buns писал(а):
kichrot,F1 Справка
...
примеры есть.
Ни в справке, ни в примерах, ни сном, ни духом не говорится, о том, что событие onExec, в режиме Wait элемента WinExec, наступает после закрытия внешнего процесса, а не так как говорится в справке:
onExec - Событие происходит в случае успешного запуска программы методом doExec
Кроме того, в исходниках элемента процедура:
procedure THIWinExec._work_doExec;
var Fn, Cmd, WD: string;
begin
Fn := ReadString(_Data,_data_FileName,_prop_FileName);
Cmd := ReadString(_Data,_data_Params,_prop_Param);
WD := ReadString(_Data,_data_WorkingDir,_prop_WorkingDir);
if RunProcess(Fn, Cmd, WD, Boolean(_prop_RunEvent)) then
_hi_CreateEvent(_Data, @_event_onExec);
end;
прямо указывает на то, что onExec должно наступать сразу после успешного запуска процесса, при любых значениях RunEvent, т.е. и при Wait. но этого не происходит.
Кроме, как багом, поведение элемента WinExec в режиме Wait, не назовешь.