Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.05.2012, 22:36
EL190 EL190 вне форума
Новичок
 
Регистрация: 23.04.2012
Сообщения: 50
Репутация: 159
По умолчанию Нажатие на крестик

Здравствуйте..
Подскажите как при нажатие на форме на крестик вывести сообщение ('закрыть?') , но при этом не должен прерываться поток программы..
Ответить с цитированием
  #2  
Старый 22.05.2012, 22:42
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

обрабатывать OnCloseQuery
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #3  
Старый 22.05.2012, 22:43
EL190 EL190 вне форума
Новичок
 
Регистрация: 23.04.2012
Сообщения: 50
Репутация: 159
По умолчанию

это событие обрабатывает нажатие на крестик??? или возникает при закрытиии формы?
Ответить с цитированием
  #4  
Старый 22.05.2012, 22:45
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

Это событие возникает перед закрытием формы любым "штатным" способом
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #5  
Старый 22.05.2012, 22:47
EL190 EL190 вне форума
Новичок
 
Регистрация: 23.04.2012
Сообщения: 50
Репутация: 159
По умолчанию

а как в этом событие отменить закрытие?
Ответить с цитированием
  #6  
Старый 22.05.2012, 22:51
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

параметр CanClose:boolean
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #7  
Старый 22.05.2012, 22:53
EL190 EL190 вне форума
Новичок
 
Регистрация: 23.04.2012
Сообщения: 50
Репутация: 159
По умолчанию

Получилось.
Цитата:
if MessageDlg('Вы действительно ходите закрыть?',mtInformation,[mbYes, mbNo],0) = mrYes then
CanClose := True
else
CanClose := False;

но когда выскакивает это сообщение оно прерывает выполнение процедуры
пока его не закроешь

Мне очень нужно чтоб оно не прерывало
Ответить с цитированием
  #8  
Старый 22.05.2012, 22:55
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

конечно, диалог ожидает ввода пользователя (нажатие на кнопку), пока диалог не отработает - форма не закроется.
Цитата:
Мне очень нужно чтоб оно не прерывало
как вы это себе представляете?
я хочу закрыть программу, она меня спрашивает и закрывается, а диалог висит? тогда зачем он тут нужен - закрывайте программу сразу.
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard

Последний раз редактировалось cotseec, 22.05.2012 в 22:58.
Ответить с цитированием
  #9  
Старый 22.05.2012, 23:00
EL190 EL190 вне форума
Новичок
 
Регистрация: 23.04.2012
Сообщения: 50
Репутация: 159
По умолчанию

У меня в программе идет передача файла. Нужно чтобы выскакивало сообщ('идет передача, хотите прервать?'), но при этом нужно чтобы это сообщ не прерывало основной поток программы. то есть передача продолжалась при выведенном сообщение . Ну а если пользователь нажмет ОК то закрываем.

Последний раз редактировалось EL190, 22.05.2012 в 23:04.
Ответить с цитированием
  #10  
Старый 22.05.2012, 23:08
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Вообще не закрывай при этом программу, а как для большинства программ занятых обработкой информации, сворачивай её. Закрытие производи из меню.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #11  
Старый 22.05.2012, 23:08
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

можно поступить следующим образом:
передача файла проводится в дополнительном потоке, по закрытию формы при утвердительном ответе, поток убивается вместе с формой, в этом случае диалог "тормозит" только форму в основном потоке, а дополнительный поток продолжает работать
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #12  
Старый 22.05.2012, 23:17
EL190 EL190 вне форума
Новичок
 
Регистрация: 23.04.2012
Сообщения: 50
Репутация: 159
По умолчанию

Цитата:
можно поступить следующим образом:
передача файла проводится в дополнительном потоке
Я это уже понял. тока поздно слишком много переделывать придется!!
решил сделать доп форму для вопроса закрыть или нет

Конечно с потоком красивее было бы, но так тоже работает.
Ответить с цитированием
  #13  
Старый 22.05.2012, 23:22
EL190 EL190 вне форума
Новичок
 
Регистрация: 23.04.2012
Сообщения: 50
Репутация: 159
По умолчанию

При обычтом Form.show все нормально работает а при showmodal тоже прерывает. блин
Ответить с цитированием
  #14  
Старый 22.05.2012, 23:23
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

можно поступить наоборот - форму с вопросом выводить в отдельном потоке
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #15  
Старый 22.05.2012, 23:31
EL190 EL190 вне форума
Новичок
 
Регистрация: 23.04.2012
Сообщения: 50
Репутация: 159
По умолчанию

А нельзя как нибудь сделать чтоб форма из которой я вызываю форму с сообщ становилась бы как showmodal тока не прерывала поток вызвавшей формы как я сделал с show
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:33.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter