Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отследить нажатие на крестик


ShimON ©   (2005-02-04 18:44:00) 

Скажите, пожалуйста, как отследить нажатие ИМЕННО на крестик формы.


grom   (2005-02-04 21:06:00) [1]

procedure OnSysCommand (var m: TMessage); message WM_SYSCOMMAND;
...
procedure TForm1.OnSysCommand;
begin
 if M.wParam=SC_CLOSE then begin
 beep;
 exit;
 end ;
 inherited;
end;


MacroDenS   (2005-02-04 19:55:00) [2]

Ну я так понимаю, что при нажатии на ОК данные должнеы подтвердиться, а закрытие формы равносильно отмене(отказу от заполнения данных), если так, то в чем проблема???


ShimON   (2005-02-04 19:11:00) [3]

Так ведь так и сделано. При нажатии на к-нить кнопку переменная принимает значение true или false. Так вот если нажать сначала на OK с неправильным полем, то переменная станет False, а затем нажать на крестик - форма не закроится :(


begin...end   (2005-02-04 19:06:00) [4]

> [4] ShimON ©   (04.02.05 19:00)

Может быть, можно закрывать или не закрывать форму в обработчике нажатия кнопки (в зависимости от результата проверки правильности ввода)?


ShimON   (2005-02-04 19:00:00) [5]

Дело в том, что мне надо при нажатии на OK проверить все поля и в случае, если одно из них неправильно заполнено, нужно вернуться в форму и заставить исправить. Поэтому в OnQueryClose я поставил эту проверку, но по сути если человек нажимает на крестик или отмену(это сделал) форма должна закрыться без вопросов!!!!


Плохиш   (2005-02-04 18:57:00) [6]

и чем так OnQueryClose не нравится?


ShimON   (2005-02-04 18:51:00) [7]

Интересно - но слишком сложно для этой проблемы, наверняка есть способ лучше!!!


Алхимик   (2005-02-04 18:49:00) [8]

Решение в лоб.
Form.Style = fsNone
Синий TShape на верхнюю часть формы
Button.Caption = 'X' в правый верхний угол

:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо