Сообщение от
Петр Петрович
Интересно, а не может быть нестабильность с программным открытием диалогов быть связана с тем, что фактически приходится выполнять такую последовательность:
MyCloseDialog(itfClientFilter:=VU.Globals.AllClien ts, xExecute:=FALSE, sDialogName:=MyVisuName);
MyCloseDialog(itfClientFilter:=VU.Globals.AllClien ts, xExecute:=TRUE, sDialogName:=MyVisuName);
MyOpenDialog(itfClientFilter:=VU.Globals.AllClient s, xExecute:=FALSE, sDialogName:=MyVisuName, xModal:=TRUE);
MyOpenDialog(itfClientFilter:=VU.Globals.AllClient s, xExecute:=TRUE, sDialogName:=MyVisuName, xModal:=TRUE);
Здесь, т.к. проблематично узнать, что диалог на конкретном клиенте уже открыт, то проще сначала закрыть диалоги на всех клиентах (уже подключенных), а потом открыть и на старых, и на новых. Подозреваю, что тут может быть нужно делать паузы между операциями. Выводил в переменную xDone, но ничего полезного в его поведении в отладчике не обнаружил. Она меняется, но как-то нелогично. Вот пока в непонятках.