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

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

MessageDlg [D7, WinXP]


john_mag ©   (2005-12-07 12:07:00) 

Доброго времени суток! Не могу понять в чём дело: код следующий...
//Выход из программы
procedure TForm1.BitBtn4Click(Sender: TObject);
var m : integer;
begin
m:= 1;
if MessageDlg('Вы действительно хотите выйти из программы?',
   mtConfirmation, [mbYes, mbNo], 0, mbYes) = mrNo then m:= 0;
if m = 1 then Application.Terminate;
end;

...но выход из программы происходит даже если нажимаю No! Подскажите, что у меня не так!


Leonid Troyanovsky   (2005-12-07 14:06:00) [1]


> Rem ©   (07.12.05 13:19) [7]
> И то верно - на каждое нажатие кнопки пользователем - переспрашивать:
>  "Вы уверены?"...


Особенно приятны подобные диалоги при завершении сессии.

--
Regards, LVT.


Rem   (2005-12-07 13:19:00) [2]

И то верно - на каждое нажатие кнопки пользователем - переспрашивать: "Вы уверены?"...

procedure TForm1.Button1Click(Sender: TObject);
begin
 Close;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := (MessageDlg('Вы действительно хотите выйти из программы?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) and
           (MessageDlg('Вы уверены?', mtConfirmation, [mbNo], 0) = mrYes);
end;


:-)


john_mag   (2005-12-07 12:42:00) [3]

спасибо >Kolan ©   (07.12.05 12:34) [5]
надо было убрать QDialogs!


Kolan   (2005-12-07 12:34:00) [4]

Незнаю у меня все работает... Вот весь текст проекта...

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Buttons;

type
 TForm1 = class(TForm)
   BitBtn1: TBitBtn;
   procedure BitBtn1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if MessageDlg('Вы действительно хотите выйти из программы?',
 mtConfirmation, [mbYes, mbNo], 0) = mrYes
then
 Application.Terminate;
end;

end.


Хинт   (2005-12-07 12:24:00) [5]

if Messagebox('','',MB_OKCANSEL)=ID_OK then ...


john_mag   (2005-12-07 12:22:00) [6]

ИМХО! теперь у меня невозможно из проги выйти даже при нажатии Yes! )


Kolan   (2005-12-07 12:15:00) [7]

Так не проше?

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if MessageDlg('Вы действительно хотите выйти из программы?',
 mtConfirmation, [mbYes, mbNo], 0) = mrYes
then
 Application.Terminate;
end;


Kolan   (2005-12-07 12:13:00) [8]

procedure TForm1.BitBtn1Click(Sender: TObject);
var m : integer;
begin
m:= 1;
if MessageDlg('Вы действительно хотите выйти из программы?',
  mtConfirmation, [mbYes, mbNo], 0 {Тут нет mbYes}) = mrNo then m:= 0;
if m = 1 then Application.Terminate;
end;


PS Кстати у меня компилятор на твой код ругнулся сказав что слишком много параметров...


Наверх

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