[CDR 2017-2021] после While doc.GetUserClick не сохраняет

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114
После использования конструкции while и GetUserClick если корректно не нажать на Esc то корел глючит и перестает сохранять и закрывать документы. а принажатии на паузу в VBA вообще вылетает, а иногда пишет ошибку "Can`t enter break mode at this time"

Код:
While doc.GetUserClick(X, Y, Shift, 10, True, cdrCursorExtPick) = 0
    'тут типа код
Wend

как от этого избавиться словить этот глюк или может какую-то другую конструкцию можно использовать?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
А как макрос определит где его конец?
 

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114
Я понимаю, вопрос - как вы это мыслите без ESC?
при закрытии на крестик или нажатии на какую-то другую кнопку, на клике в пустоту... да как угодно. я вот и спрашиваю какой способ лучше сделать.
просто если не нажать ESC то оно висит в каком-то режиме подвисшего цикла.
хоть на событие терминэйт формы повесить.... знать бы что )))
 

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114
единственное, что пока сделал - это hide форме чтобы нельзя было нажать других кнопок.
а если это просто макрос без формы? можно же другой запустить. и снова подвиснет все.
в общем похоже очередная "дыра" в VB
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Попробуйте перехватить событие закрытия формы и отправлять ESC принудительно
 

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114
Попробуйте перехватить событие закрытия формы и отправлять ESC принудительно
если форма - тут понятно.. а если не форма... пользователь же может нажать и запустить любой другой макрос ((((
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
если форма - тут понятно.. а если не форма... пользователь же может нажать и запустить любой другой макрос ((((
Тогда еще раз повторяю вопрос:
А как макрос определит где его конец?
А то ишь разбаловала всех многозадачность. VBA - это не многозадачная и не многопотоковая система, запущенный макрос воюет с переменным успехом даже с базовым кореловским функционалом. ;)
 

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114
Тогда еще раз повторяю вопрос:

А то ишь разбаловала всех многозадачность. VBA - это не многозадачная и не многопотоковая система, запущенный макрос воюет с переменным успехом даже с базовым кореловским функционалом. ;)
так это понятно. я поэтому то и спросил есть ли какой то метод. но похоже его нет. )
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Ответ на этот вопрос найдется как только вы придумаете стопроцентный признак, по которому надо цикл завершать. Закрытие формы, запуск другого макроса, закрытие документа или переключение на другой и т.д.
Вопрос из разряда тех, которые содержат в себе ответ при правильной постановке ;)
 

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114
Ответ на этот вопрос найдется как только вы придумаете стопроцентный признак, по которому надо цикл завершать. Закрытие формы, запуск другого макроса, закрытие документа или переключение на другой и т.д.
Вопрос из разряда тех, которые содержат в себе ответ при правильной постановке ;)
ну это то понятно. просто мало ли есть какой-то другой способ бесконечного цикла типа модальное окно которое не дает ничего лишнего нажимать )))
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
ну это то понятно. просто мало ли есть какой-то другой способ бесконечного цикла типа модальное окно которое не дает ничего лишнего нажимать )))
Так модальное окно вас и к макету не пустит же
 

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114
Так модальное окно вас и к макету не пустит же
модальное окно - это понятно.. я про принцип в целом )
в итоге сделал чтобы форма просто пряталась чтобы пользователь ничего лишнего не нажал.. вроде тест показал норм результат )