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

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

вывести окно диалога [D6, XP]


koleg ©   (2006-04-19 13:19:00) 

Уважаемые, подскажите пож-ста, чтоб при нажатии по кнопке Выход, появлялось диалоговое окно "Вы уверены" с кнопками (Да Нет). Где-то читал про это, но не могу найти.


Loginov Dmitry   (2006-04-20 09:00:00) [1]


> Уважаемые, подскажите пож-ста, чтоб при нажатии по кнопке
> Выход, появлялось диалоговое окно "Вы уверены" с кнопками
> (Да Нет). Где-то читал про это, но не могу найти.


Имхо, сообщение лучше оформлять примерно так:
"Обнаружены несохраненные данные. Хотите ли вы их сохранить?"
[Да, Нет, Отмена]

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


Германн   (2006-04-20 03:03:00) [2]

А на  TForm1.Button3Click нужно писать Application.MainForm.Close.
Это в дополнение к Джо ©   (20.04.06 01:03) [11]


Джо   (2006-04-20 01:03:00) [3]

> [10] koleg   (20.04.06 00:01)

Этот код, как и указывал [3] Ega23, нужно написать в обработчике события OnCloseQuery главной формы приложения.


koleg   (2006-04-20 00:01:00) [4]

Ребят, ну а дальше то? Диалоговое окно получил, а как дописать код, чтоб по кнопке Yes приложение закрылось?
procedure TForm1.Button3Click(Sender: TObject);
 var CanClose: Boolean;
begin
  CanClose := MessageDlg ('Âû óâåðåíû, ÷òî õîòèòå âûéòè?',mtWarning,
  [mbYes,mbNo],-1) = mrYes;

end;


Anatoly Podgoretsky   (2006-04-19 18:45:00) [5]

koleg   (19.04.06 15:42) [6]
Ничего страшного, и более того обязательно.


Джо   (2006-04-19 17:11:00) [6]

>
> [6] koleg   (19.04.06 15:42)
> На анлицком???? Ужассс!!!

Надо, Федя, надо! (c)
;)


koleg   (2006-04-19 15:45:00) [7]

В любом случае спасибо всем кто откликнулся. Чувствую, что придется еще не раз обратиться за помощью.


koleg   (2006-04-19 15:42:00) [8]


> Подробно об этом можно почитать в хелпе.

На анлицком???? Ужассс!!!


GrayFace   (2006-04-19 15:31:00) [9]

> CanClose := MessageDlg ('Вы уверены, что хотите выйти?', mtWarning,[mbYes,mbNo],-1) = mrYes;

MessageBox лучше. "Пибикает" и кода лишнего нету. :)

По Handle: Help -> Windows SDK -> Указатель: "EnumWindows" -> кнопка "Group".


Джо   (2006-04-19 14:29:00) [10]


> [2] koleg   (19.04.06 14:25)

Можно и проще
CanClose := MessageDlg ('Вы уверены, что хотите выйти?',mtWarning,[mbYes,mbNo],-1) = mrYes;


> Или в книжный магазин придется шагать?

Это обязательно :)


Ega23   (2006-04-19 14:28:00) [11]

Handle - это идентификатор окна в системе, в рамках которого будет показан MessageBox.
PChar - это такой тип данных.
Подробно об этом можно почитать в хелпе.


koleg   (2006-04-19 14:25:00) [12]

Handle, PChar-что это? дайте пож-ста линк где можно почитать об этом. Или в книжный магазин придется шагать?


Ega23   (2006-04-19 13:26:00) [13]

Главная ворма, событие OnCloseQuery

procedure TFClassConfig.FormCloseQuery(Sender: TObject;
 var CanClose: Boolean);
begin
 CanClose:=(MessageBox(Handle, PChar('Çàêîí÷èòü ðàáîòó?'), PChar('Âíèìàíèå!'),
                       MB_OKCANCEL or MB_ICONINFORMATION)=IDOK);
end;


Наверх

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