| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
17.06.2019, 07:03 | #1 | |
Оформить диалоговое окно
г. Норильск
Регистрация: 15.08.2005
Сообщений: 470
|
||
Просмотров: 3189
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Само по себе окно проблем-то не вызовет. Проблема будет в обработчике...
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Я тебе говорю - нужен доп.обработчик для этого дела.
----- добавлено через ~11 мин. ----- Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 470
|
Добрый день!
Отловить функцией callback "key" для "переключателя" получается, а вот для "радиокнопки" почему-то нет. :-( Можно на этом же примерчике показать, как сделать, чтобы при выборе радиокнопок 2 и 3 поле "Параметр" (переключатель) становилось недоступным, а поле для ввода текстов было доступно при выборе единственной радиокнопки (ну, например, 5-й) ?
__________________
Счастливо, Алексей! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Ну так внутри
(wcmatch key "opt#") прописывай различные дополнительные варианты, в чем проблема?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 470
|
Проблема в том, что не ловит "радиокнопки".
"Переключатели" - без проблем, а вот радиокнопки - не хочет. Даже калбек при щелчкам по ним не вызывается. ----- добавлено через ~43 мин. ----- Пробовал какой-нибудь action = Типа, : radio_button { label = "Метка 1"; alignment = left; key = "Выбор-1";action="(setq a 123)"; } в DCL-файле на radio_button прицепить - так он тоже не отрабатывает. Причём от слова "совсем" - даже (setq a 123) не присваивается... ----- добавлено через ~2 ч. ----- Разобрался. Оказывается, это radio_column всю картину портил. Кто бы мог подумать...
__________________
Счастливо, Алексей! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
===AAA===, ты вообще в моем коде radio_column видел?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 470
|
Нет, конечно. :-)
Я просто стал применять идею обработчика к своему более "навороченному" окну и вот там-то и натолкнулся на этот подводный камень, ибо у меня как раз и был использован radio_column. А здесь написал на случай - если оно вдруг кому-нибудь пригодится, дабы не наступали на грабли. Как-то так...
__________________
Счастливо, Алексей! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Вообще-то это было предсказуемо: radio_column, radio_row в свою группу захватывают вписанные radio_button и контролируют их поведение.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 470
|
Добрый день!
А как сделать так, чтобы после всяких щелчков мышью по "радиокнопкам" и "переключателям" при входе в поле для ввода строки снова перебросить "фокус" на нужную кнопку закрытия окна? Вот скажем, есть у меня в окне поле : text {label = "Имя файла:";} : edit_box{key="name_file";} И кнопка : button { label = "Текущий"; key = "Current_File"; } В описании окна я устанавливаю initial_focus = "Current_File"; всё красиво, кнопка подсвечена, Enter работает, но потом-то этот фокус с кнопки сбивается :-( А хотелось бы, чтобы окно можно было закрывать нажатием Enter после ввода данных в текстовое поле (благо оно там одно). Т.е. "зафиксировать" подсветку на этой кнопке.
__________________
Счастливо, Алексей! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Изучай mode_tile .
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 470
|
Добрый день!
Что-то не получается... Добавил в (callback) (mode_tile "Current_File" 2) Щелкаю по "радиокнопкам", фокус возвращается на эту кнопку "Текущий", всё хорошо, но самое-то главное не срабатывает. :-( а) При вхождении в поле ввода текста кнопка "Текущий" не подсвечивается б) При нажатии Enter завершение работы с текстовым полем не происходит. Может быть, это из-за того, что у меня в DCL-файле нет "классической" ok_cancel; (так она мне и не нужна), а есть только: : row { alignment = centered; fixed_width = true; : button { label = "Текущий"; key = "Current_File"; } : button { label = "Выбрать"; key = "Select_File"; } : button { label = "Отмена"; key = "but_cancel"; is_cancel = true; } // CANCEL }// row кнопок Если из-за этого, то решение есть? Или для поля : edit_box{key="name_file";} ещё какой-нибудь атрибут "завершить по Enter" нужен ? ----- добавлено через ~38 мин. ----- Вопрос а) При вхождении в поле ввода текста кнопка "Текущий" не подсвечивается решается добавлением is_default = true; в кнопку "Текущий" : button { label = "Текущий"; key = "Current_File"; is_default = true; } (тогда и mode_tile = 2 в калбек добавлять не нужно), но вот с вопросом б) При нажатии Enter завершение работы с текстовым полем не происходит. - пока непонятка...
__________________
Счастливо, Алексей! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
См. is_default. По-моему, для кнопок срабатывает.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
проверить $reason для ассоциированого действия для edit_box. если ==1, то нажат <Enter>. завершить диалог и передать управление на обработку события.
|
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как дополнить код программы, чтобы данные вводились через диалоговое окно? | RomeO | LISP | 18 | 15.04.2017 09:00 |
Как восстоновить диалоговое окно "Генератор валов" в AutoCad Mechanikal-е? | Армен Грачикович | Вертикальные решения на базе AutoCAD | 2 | 11.03.2013 13:49 |
Autocad 2012. Почему макрос подавляет диалоговое окно? | vovkaf | Программирование | 24 | 10.09.2012 18:10 |
Как сделать диалоговое окно, описанное в DCL файле и вызванное Lisp программой, немодальным? | E-degtyarev | LISP | 9 | 28.05.2010 09:10 |