|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
09.06.2004, 13:53 | #1 | |
Вопрос Fantomas'у. Object DCL
LISP-программист
Тутэйшы
Регистрация: 25.08.2003
Сообщений: 238
|
||
Просмотров: 3723
|
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
К сожалению не помню уже что в "шаг за шагом" было написано, но попробую догадаться в чем дело. Возмем проект с одной кнопкой и одним Label.
Замена стандартной надписи Label1 на Hi, Kos! при инициализации Код:
Код:
[ATTACH]1086791609.gif[/ATTACH] |
|||
|
||||
LISP-программист Регистрация: 25.08.2003
Тутэйшы
Сообщений: 238
|
Fantomas, спасибо. Заработало. Только так и не выяснил почему не работало вчера. Не поменял ни одного символа. Может после того, как сформирован диалог (odc-файл) и обрабатывающая его функция (lsp) необходимо закрыть редактор ObjectDCL и (или) AutoCAD, а затем запустить его снова? Нет таких наблюдений?
__________________
Там все есть для счастья - меня там только нет. Так это значит, что я там - буду! |
|||
|
||||
Сообщений: n/a
|
Ошибка была следующая (сам когда-то попался)
В функции Odcl_LoadProject кроме имени файла опционально возможен и второй аргумент ForceReload. При отладке проекта необходимо чтобы ForceReload был t (Odcl_LoadProject <имя прооекта> t). В этом случае - кажый раз при загрузке функции будет подчитываться odc-файл с диска. Если второй аргумент отсутствует - программа обращается к загруженному в память ресурсу диалога, не перечитывая его с диска и никакие изменения сделанные в редакторе диалога (в том числе включение галочки обработки события) не доступны. Убирать этот аргумент нужно только в окончательно отлаженной программе для ускорения работы. |
|||
|
||||
LISP-программист Регистрация: 25.08.2003
Тутэйшы
Сообщений: 238
|
Цитата:
И еще вопрос вдогонку. Любое ли свойство можно менять при помощи функции Odcl_Control_SetProperty?
__________________
Там все есть для счастья - меня там только нет. Так это значит, что я там - буду! |
|||
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>Kos Выберите любой элемент и откройте Object Broswer в контекстном меню. Откроется окно со свойствами, методами и событиями (см. картинку). Как видите после этого Help вам нужен процентов на 10. Там есть все и можно копировать Set и Get в буфер.
По поводу "инцидента" могу сказать следующее. У меня также как и у Олега при наладке стоит T и все изменения в диалоге появляються "налету" при следующем запуске проги без перезагрузок КАДа и документа куда была загружена функция. Так что не знаю причины кроме Т... [ATTACH]1086878078.gif[/ATTACH] |
|||
|
||||
Сообщений: n/a
|
Цитата:
Я скажу так: ObjectDCL имеет свои проблемы, но без него было бы намного хуже. За последние два месяца разработчик уже устранил около 5-ти ошибок по моим замечаниям и продолжает это делать. Более того - даже сделал одно усовершенствование по моей просьбе. |
|||
|
||||
LISP-программист Регистрация: 25.08.2003
Тутэйшы
Сообщений: 238
|
Цитата:
Цитата:
__________________
Там все есть для счастья - меня там только нет. Так это значит, что я там - буду! |
|||
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Сразу еще одна штука на которая может вызвать проблемку. В течении работы одной проги если требуется возвращать диалог на экран несколько раз НЕ НАДО писать несколько раз (Odcl_Form_Show My_Dialog), будут проблеммы (откроете вторую копию). Используйте конструкцию подобную этой:
В "головной" функции: (setq dialShow T) (while dialShow (Odcl_Form_Show My_Dialog) ) Скрыть диалог: (Odcl_Form_Close My_Dialog) (setq dialShow nil) Возвратить диалог: (setq dialShow T) |
|||