Тема: Переход в другую строку и выполнение кнопки ОК по Enter
А как перейти в следующее поле ввода по нажатию Enter, а потом выполнить ОК. сейчас даже при задании action_title ОК не срабтывает? Заранее спасибо)
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → DCL → Переход в другую строку и выполнение кнопки ОК по Enter
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
А как перейти в следующее поле ввода по нажатию Enter, а потом выполнить ОК. сейчас даже при задании action_title ОК не срабтывает? Заранее спасибо)
А надо ли? По твоей форме это взаимоисключающие операции (переход на другое поле для ввода и выход из меню для обработки результатов). Переход по полям реализован стандартно для Windows: Tab (вперед) и Shift+Tab (назад). Не вводи пользователя в заблужденине. Он этого не любит.
Ладно, с этим понятно, но как хотябы сделать так, чтобы кнопка по ентеру нажималась?
А сюда заглядывал:
https://www.caduser.ru/forum/topic14685.html
сейчас даже при задании action_title ОК не срабтывает? Заранее спасибо)
описАлся или ошибка action_tile
> Юрий
заглядывал. пробовал, по-разному, и так и так, не работает. Всеравно не срабатывает, но при этом 2 других окна работают нормально
> Novichek
Ну если два окна работают, тогда ищи чистую ошибку (описку). Где-то скобку потерял или кавычки забыл. Вложенные кавычки должны предваряться обратным слешем "\". Все функции DCL работают с аргументами типа "строка". Может быть имена ключей (key) в разных диалогах пересекаются.
"А как перейти в следующее поле ввода по нажатию Enter, ..."
(action_tile "A" "(mode_tile \"B\" 2)")
(action_tile "B" "(mode_tile \"C\" 2)")... и так до бесконечности ))) mode_tile с индексом 2 выделяет поле. Находясь в ячейке "А" после нажатия на Enter команда выделит поле "В"...
> Ariec
Это делается так:
;;Lisp (defun C:aha () (if (<= (setq dcl_id (load_dialog "tempo.dcl")) 0) (progn (alert "Не возможно загрузить файл диалога prims_two.dcl !!!") (exit) );progn );if (if (not (new_dialog "boxes" dcl_id)) (progn (alert "Не загружается диалог") (exit) );progn );if (action_tile "cancel" "(done_dialog 0)") (action_tile "accept" "(done_dialog 1)") (mode_tile "ПервыйБокс" 2) (action_tile "ПервыйБокс" "(setq first $value) (if (/= $reason 2) (mode_tile \"ВторойБокс\" 2) )" ) (action_tile "ВторойБокс" "(setq second $value) (if (/= $reason 2) (mode_tile \"ТретийБокс\" 2) )" ) (action_tile "ТретийБокс" "(setq third $value) (if (/= $reason 2) (mode_tile \"accept\" 2) )" ) ;;;*** (setq done_dlg_val (start_dialog)) (unload_dialog dcl_id) (if (/= done_dlg_val 1) (exit) );if (alert (strcat (vl-princ-to-string first) "\n" (vl-princ-to-string second) "\n" (vl-princ-to-string third))) ) ;;DCL boxes :dialog {label = "Test Boxes"; :boxed_column { :edit_box {label="First"; key="ПервыйБокс"; } :edit_box {label="Second"; key="ВторойБокс"; } :edit_box {label="Third"; key="ТретийБокс"; } } ok_cancel; }
~'J'~
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → DCL → Переход в другую строку и выполнение кнопки ОК по Enter
Форум работает на PunBB, при поддержке Informer Technologies, Inc