Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2012, 12:33   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Окно запроса при выходе из программы

Код:
procedure TForm4.BExitClick(Sender: TObject);
begin
  Application.Terminate;
end;

procedure TForm4.BQuestionClick(Sender: TObject);
var
  res: Integer;
  FS: TFileStream;
begin
  res := MessageBox(0, 'Обновиться?', '', MB_YESNO or MB_ICONQuestion or MB_DEFBUTTON1); // При MB_DEFBUTTON2 архив не скачивается
  case res of
  IDYES: begin
    FS := TFileStream.Create('_.zip', fmCreate);
    FS.Size := 1024;
    FS.Free;
  end;

  end;
end;
При выходе из программы с окном запроса создаётся архив при MB_DEFBUTTON1, но не при MB_DEFBUTTON2. Можно от этого как-нибудь избавиться.
Shouldercannon вне форума Ответить с цитированием
Старый 10.07.2012, 12:46   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если во втором случае нажать да, то архив не создается?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.07.2012, 12:49   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Во втором случает (IDNO) не создаётся.
Shouldercannon вне форума Ответить с цитированием
Старый 10.07.2012, 13:16   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

дык если вы жмете нет, то ничего и не должно создаться, DEFBUTTON означает какая клавиша будет выделена по умолчанию при появлении мессаджа(для нажатия Enter), не более.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.07.2012, 13:48   #5
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Значит косяк с выходом из программы при показывающемся окне запроса неисправим.
Shouldercannon вне форума Ответить с цитированием
Старый 10.07.2012, 13:50   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

при нажатии на ДА или на НЕТ должно идти действие?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.07.2012, 14:17   #7
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Действие должно идти при Да
Два варианта развития событий:
1. Пользователь запустил программу и ему предложено обновиться. Поумолчанию DEFBUTTON1, тоесть Да.
2. Пользователь запустил программу и ему предложено обновиться. Поумолчанию DEFBUTTON1, тоесть Да, но он сразуже закрывает программу, после чего начинается и тут же прерывается скачивание обновления. В итоге имеем файл 0 размера.
Shouldercannon вне форума Ответить с цитированием
Старый 10.07.2012, 14:26   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

MB_DEFBUTTON просто указывает на какую клавишу Enter действует и если MB_DEFBUTTON2 и нужно "да", то мышкой на "да" кликнуть.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.07.2012, 14:48   #9
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Это понятно. Короче это бесполезно. При первом способе развития событий нужно MB_DEFBUTTON1, при втором MB_DEFBUTTON2.
Shouldercannon вне форума Ответить с цитированием
Старый 10.07.2012, 15:15   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

проверяйте есть ли скачивание, проблема то не в боксе у вас.
если есть скачивание то скрывайте форму и ждите завершения.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подтверждения при выходе из программы Ayubkhon Общие вопросы Delphi 18 18.06.2013 00:53
Ошибка при выходе из программы Warn Общие вопросы Delphi 3 07.11.2011 16:16
Зависание программы при выходе codermoder Работа с сетью в Delphi 6 18.12.2010 23:16
Зависание программы при выполнении GET запроса iHikita Общие вопросы .NET 1 16.07.2010 00:20