|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как правильно обработать ok_only и ok_button
Регистрация: 30.03.2015
Сообщений: 153
|
||
Просмотров: 3614
|
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
используй ok_cancel! Это распространенная ошибка многих академиков и инженистов. Дело в том, что когда ты жмешь крестик, выполняется кнопка по умолчанию, а так как в ok_button не заложено закрытие диалога, то тебе кажется что ничего не происходит. Собственно у тебя весь код, судя по тому, из удаленной темы, - одна сплошная ошибка
|
|||
![]() |
|
||||
Регистрация: 30.03.2015
Сообщений: 153
|
ну код то работал,в последнем что скидывал в "удаленной" -это я по всякому извращался, и свою кнопку пытался(и возможно не совсем рабочую скидывал,уже не проверял-замучался)...а "не просходило"-все делалось,но как при нажатии кнопки ок = а меня это не совсем устраивает (в моем понимании крестик -это отмена)
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Не надо никаких "моих пониманий". Крестик у окна в любых программах Windows имеет единственное назначение - закрыть окно. Он не отменяет каких-то действий, выполненных в окне.
Если перед закрытием окна необходимо что-то сделать (например проверить, сохранен ли файл), то делается дополнительный обработчик события OnCloseQuery. Вот тогда можно что-то "отменить". В Lisp это обычно не делают. Просто "закрыть окно" и "отменить" далеко не всегда одно и то же. Что касается именованных наборов кнопок, таких как ok_only, ok_cancel, ok_button, cancel_button и прочих, то они сделаны просто для упрощения разметки. Описаны в base.dcl. Его надо посмотреть и знать, что делает та или иная кнопка или набор, т.е. какое действие (key) привязано к кнопке с таким именем. Не стоит пытаться переопределить действия стандартных кнопок (это все равно что менять местами педали в автомобиле). А вот надпись на кнопке можно сделать и свою, но не меняя смысл её действия. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Какое-то время назад мне казалось., что "ООП-подход" к dcl выглядит круто. есть виджеты и есть их обработчики, все довольно симпатично. Но потом оказалось, что обыкновенный "винапишный" подход - гораздо проще: достаточно одной функции, аналогичной WndProc и функции запуска диалога типа DialogShow.
поэтому строчки типа у меня отсутствуют как класс, особенно (setq done 1) - это вообще идиотизм, так как результат диалога можно взять, во-первых, из start_dialog во вторых из системной переменной diastat |
|||
![]() |
|
||||
Регистрация: 30.03.2015
Сообщений: 153
|
gomer и ShaggyDoc если я даже не так выразился, не стоит уже так критично насчет крестика...
но ЯВНО крестик это не продолжение выполнение как при нажатии на ок (при ok_only) или вообще ничего (при ok_button) - зачем мне тогда крестик если функция продолжается как при нажатии ок? п.с насчет согласен и убрал, а Цитата:
п.с Все равно спасибо, всегда что-небуть новенькое узнаешь ![]() |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |
Возможно ли вообще правильно заармировать балку по СНиП? | МишаИнженер | Прочее. Архитектура и строительство | 40 | 12.11.2019 07:31 |
Забивка свай и заполнение полости свай ЦПР как правильно занести эти работы в журналы? | progamer | Технология и организация строительства | 5 | 18.07.2018 17:55 |
Как и чем правильно обработать, механизировав процесс? Фото прилагается. | Колосей | Машиностроение | 10 | 03.07.2011 07:51 |