Последовательность вывода сообщений в командной строке и по (alert ...)
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Последовательность вывода сообщений в командной строке и по (alert ...)

Последовательность вывода сообщений в командной строке и по (alert ...)

Ответ
Поиск в этой теме
Непрочитано 22.11.2023, 12:59 #1
Последовательность вывода сообщений в командной строке и по (alert ...)
Pilot
 
Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291

Уважаемые коллеги,

Есть такой фрагмент кода:
Код:
[Выделить все]
 (princ (strcat "\nСлой " NAME " блокирован."))
(if (= NAME (getvar "clayer"))
    (alert (strcat "Блокирован текущий слой " NAME))
)
По-идее, по мере выполнения кода должно появиться сообщение в командной строке, а потом сразу же сообщение в диалоговом окошке по функции (alert ...).
На деле же происходит наоборот. Сперва выскакивает диалоговое окошко, и только после его закрытия появляется сообщение в командной строке.
Причем с подобными "рокировками" я сталкивался неоднократно.
В чем дело?
Просмотров: 1046
 
Непрочитано 22.11.2023, 15:00
#2
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 627


Некорректная работа функций (princ) и (print).

Они не сразу выкидывают сообщение в командную строку, а
складывают их в некий "буфер", откуда сообщения выводятся
по мере... А вот что это за "по мере" такое, похоже, никто
не знает.
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 22.11.2023, 15:04
#3
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


princ - это просто вывод в комстроку (по умолчанию), а не диалоговая функция ввода. Поэтому если акад не успел вывести содержимое princ в комстроку до начала отображения модального диалога alert, то акад будет дожидаться закрытия модального окна диалога для продолжения работы.

----- добавлено через ~3 мин. -----
также модальное окно блокирует обработку событий, обращения извне по COM и т.д. Поэтому модальные окна в акаде нужно использовать аккуратно)
Сергей812 вне форума  
 
Непрочитано 22.11.2023, 15:33
#4
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 627


Кстати, (princ) не только в связке с алертом глючить будет.

Я как-то экспериментировал с печатью в цикле - некоторые
сообщения просто пропадали, так и не отобразившись в комстроке.
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 22.11.2023, 16:08
#5
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,817


Цитата:
Сообщение от Pilot Посмотреть сообщение
Сперва выскакивает диалоговое окошко
по ходу приоритет исполнения диалогов наивысший.
__________________
K Lisp
koMon вне форума  
 
Непрочитано 22.11.2023, 16:16
#6
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 627


Но решение-таки есть.
Замени (princ) на (write-line) и счастье сразу же наступит. :-)
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Автор темы   Непрочитано 23.11.2023, 15:06
#7
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Спасибо, попробую.
Pilot вне форума  
 
Автор темы   Непрочитано 27.11.2023, 16:02
#8
Pilot

Проектировщик свиноводство
 
Регистрация: 21.08.2003
Сообщений: 2,291


Попробовал пока на одной функции.
Вроде работает.
Буду внедрять в остальные и тестировать на каждой.
Спасибо!
Pilot вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Последовательность вывода сообщений в командной строке и по (alert ...)



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Как вывести меню команды в командной строке? (пояснения внутри) Booka1a AutoCAD 16 02.02.2018 17:55
Как активировать опции функций в командной строке tyrgin AutoCAD 5 30.11.2015 10:32
Имитация нажатия Enter при вводе строкового параметра команды в командной строке. smallmazila7 Программирование 7 18.11.2010 06:05
Глюк отображения информации в командной строке kfish AutoCAD 1 14.05.2008 13:40