Как правильно обработать ok_only и ok_button
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как правильно обработать ok_only и ok_button

Как правильно обработать ok_only и ok_button

Ответ
Поиск в этой теме
Непрочитано 09.05.2015, 14:33 #1
Как правильно обработать ok_only и ok_button
prajdziswet
 
Регистрация: 30.03.2015
Сообщений: 153

делаю диалог, который состоит из одной кнопки ок:
если ставлю ok_only, нажатие на крестик(закрытие окна приводит к тому же самому что и ок) в лиспе так
Код:
[Выделить все]
 (action_tile "accept" "(progn (palja)(done_dialog 1)(setq done 1))")
добавляю cancel (кнопки кансел нет)..все равно done_dialog и done присваиваются 1 даже при нажатии на крестик

если ставлю ok_button то крестик не как не реагирует (даже не закрывает окно), пробывал кнопку свою -пишет ошибку нет ни ок не кансел (если только собственная кнопка)...
хочется чтобы при ок выполнялось, а при закрытии(крестик) ничего не делалось..две кнопки ок и кансел не хочется

подскажите пожалуста, что я не то делаю или как правильно обработать нажатие на ок и отмена(в данном случае крестик)
Просмотров: 3614
 
Непрочитано 09.05.2015, 17:51
#2
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


используй ok_cancel! Это распространенная ошибка многих академиков и инженистов. Дело в том, что когда ты жмешь крестик, выполняется кнопка по умолчанию, а так как в ok_button не заложено закрытие диалога, то тебе кажется что ничего не происходит. Собственно у тебя весь код, судя по тому, из удаленной темы, - одна сплошная ошибка
gomer вне форума  
 
Автор темы   Непрочитано 09.05.2015, 18:54
#3
prajdziswet


 
Регистрация: 30.03.2015
Сообщений: 153


ну код то работал,в последнем что скидывал в "удаленной" -это я по всякому извращался, и свою кнопку пытался(и возможно не совсем рабочую скидывал,уже не проверял-замучался)...а "не просходило"-все делалось,но как при нажатии кнопки ок = а меня это не совсем устраивает (в моем понимании крестик -это отмена)
prajdziswet вне форума  
 
Непрочитано 09.05.2015, 19:39
#4
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от prajdziswet Посмотреть сообщение
в моем понимании крестик -это отмена
ну и кто вам доктор?
gomer вне форума  
 
Непрочитано 10.05.2015, 06:49
#5
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от prajdziswet Посмотреть сообщение
в моем понимании крестик -это отмена
Не надо никаких "моих пониманий". Крестик у окна в любых программах Windows имеет единственное назначение - закрыть окно. Он не отменяет каких-то действий, выполненных в окне.

Если перед закрытием окна необходимо что-то сделать (например проверить, сохранен ли файл), то делается дополнительный обработчик события OnCloseQuery. Вот тогда можно что-то "отменить". В Lisp это обычно не делают.

Просто "закрыть окно" и "отменить" далеко не всегда одно и то же.

Что касается именованных наборов кнопок, таких как ok_only, ok_cancel, ok_button, cancel_button и прочих, то они сделаны просто для упрощения разметки. Описаны в base.dcl. Его надо посмотреть и знать, что делает та или иная кнопка или набор, т.е. какое действие (key) привязано к кнопке с таким именем. Не стоит пытаться переопределить действия стандартных кнопок (это все равно что менять местами педали в автомобиле). А вот надпись на кнопке можно сделать и свою, но не меняя смысл её действия.
ShaggyDoc вне форума  
 
Непрочитано 10.05.2015, 11:03
#6
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


>>и перед закрытием окна необходимо что-то сделать (например проверить, сохранен ли файл), то делается дополнительный обработчик события OnCloseQuery
Это какаято пропоганда vcl и "формошлепства"))
zamtmn вне форума  
 
Непрочитано 10.05.2015, 13:03
#7
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Это какаято пропоганда vcl и "формошлепства"))
Какое-то время назад мне казалось., что "ООП-подход" к dcl выглядит круто. есть виджеты и есть их обработчики, все довольно симпатично. Но потом оказалось, что обыкновенный "винапишный" подход - гораздо проще: достаточно одной функции, аналогичной WndProc и функции запуска диалога типа DialogShow.
поэтому строчки типа
Цитата:
Сообщение от prajdziswet Посмотреть сообщение
(action_tile "accept" "(progn (palja)(done_dialog 1)(setq done 1))")
у меня отсутствуют как класс, особенно (setq done 1) - это вообще идиотизм, так как результат диалога можно взять, во-первых, из start_dialog во вторых из системной переменной diastat
gomer вне форума  
 
Автор темы   Непрочитано 11.05.2015, 14:52
#8
prajdziswet


 
Регистрация: 30.03.2015
Сообщений: 153


gomer и ShaggyDoc если я даже не так выразился, не стоит уже так критично насчет крестика...
но ЯВНО крестик это не продолжение выполнение как при нажатии на ок (при ok_only)
или вообще ничего (при ok_button) - зачем мне тогда крестик если функция продолжается как при нажатии ок?
п.с насчет
Цитата:
Сообщение от gomer Посмотреть сообщение
особенно (setq done 1) - это вообще идиотизм
согласен и убрал, а
Цитата:
Сообщение от gomer Посмотреть сообщение
Но потом оказалось, что обыкновенный "винапишный" подход - гораздо проще: достаточно одной функции, аналогичной WndProc и функции запуска диалога типа DialogShow.
хотелось посмотреть пример с лиспом (или ссылку, интересно чем возиться с dcl и кнопки-"ок" в частности)

п.с Все равно спасибо, всегда что-небуть новенькое узнаешь
prajdziswet вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как правильно обработать 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