delphi 怎么实现主窗口退出时,有一个提示框?

无论点窗口上的【按钮】还是【右上角的叉】,能出现一个提示窗口,“是”-退出窗口,“否”-重新登录(调出登录窗口),“取消”-返回。
MessageBox能实现吗?还是要调用新窗口(我调用窗口,有些错误)?
如图一样。 有谁能给代码?谢谢了
热心网友:你好,我用你的代码,已经好了。但用在 procedure TMainForm.ToolButton8Click(Sender: TObject); 中“是”要点两下主窗口才关闭,是什么原因?

在窗口的OnCloseQuery里写下面的代码:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
case Application.MessageBox('确定退出系统?','询问',35) of
6:
begin
ShowMessage('按了是,窗口关闭');
CanClose:=True;
end;
7:
begin
ShowMessage('按了否,返回登陆窗口');
CanClose:=True;
//这里写上你的登陆窗口调用代码
ShowMessage('登陆窗口出现了');
end;
2:
begin
ShowMessage('按了取消,窗口不关闭');
CanClose:=False;
end;
end;
end;
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-08-11
你可以在窗体的onClose事件中进行设计。
在里面先以定义一个退出标志,然后根据标志判断是否退出。
procedure TFrm_mz_sf_zdhj.FormClose(Sender: TObject; var Action: TCloseAction);
var ExitFlag:Integer;//退出标志
begin
ExitFlag:=Application.MessageBox('当前记录尚未保存,确认退出吗?','警告',Mb_YesNo) ;
If ExitFlag=7 then//不退出
Begin
//TCloseAction = (caNone, caHide, caFree, caMinimize);
Action:=caNone;
Exit;
end
else
Begin
self.close;//退出
End;
end;
第2个回答  2011-10-06
自己建一个窗体,然后用ShowModel显示
或者在OnCanClose事件里处理,具体的看帮助
第3个回答  2011-10-06
重载窗口的消息处理,在其中拦截wm_close即可。
第4个回答  2011-10-07
在Form的onclosequery中用Messagebox提问就可以了

delphi 关闭时 出现对话框.取消则不退出怎么实现?
在关闭事件里面弹出一个Messagebox询问是否要退出就行了,如果不退出的话就Cancolose设为false就行了,这个是最基本的问题了

delphi中退出是弹出让你确定的几种确定对话框怎么写?
1、打开Delphi7集成开发环境,在默认工程的Form1窗体放一个Button1按钮,一个Edit1编辑框。2、在Unit1.pas源代码文件的interface部分定义一个类,代码如下。3、在属性上按CTRL+Shift+C会生成对应的方法,在SetName和SetScore分别写如下代码。4、双击Button1进入事件方法,写如下代码。5、最后F9运行程序,...

如何用delphi编一个点击按钮后弹出的对话框,比如welcom等
1、ShowMessage('Welcome'); \/\/这个是弹出一个提示框 2、if MessageDlg('你确定要退出吗?',mtInformation,[mbyes,mbno],0) = mryes then ShowMessage('确定退出')else ShowMessage('不退出'); \/\/这个是询问框

delphi 怎么使得在退出系统前检测数据是否保存,未保存则提示
建立一个全局布尔变量,当开始输入数据后设置它为假,保存数据后再置为真,关闭窗口时检测该变量,如果为假,抛出对话框,提醒用户保存数据,如果YES就保存数据后,再退出,如果NO就直接关闭窗口

在delphi中怎么实现windows文件命名出错的那个提示框
\/\/简单点,Delphi 带了一个:var ToolTip: THintWindow;begin ToolTip := THintWindow.Create(Self);with ToolTip do begin Color := clWhite;ActivateHint(Rect(0, 0, 100, 100), '文件名不能包含下列任何字符之一:');Show;end;end;

delphi等窗口完全显示后执行一段代码
所有的Delphi窗体在运行时都是在内存中自动创建的,这要消耗内存和系统资源。在这样的一个案例中,程序是在运行时创建窗体的,读者应该从自动创建的列表中删除窗体。关闭ProjectOptions窗口。10、接下来,修改工程的源代码,以便在显示主窗口之前显示溅射对话框。这里需要在工程文件中插入语句,以便与Splash....

应用程序打开后,会跳出一个提示框,提示Cannot perform this operat...
这个错误不象是数据库的错误,比较象delphi程序的错误信息,如果你的程序是delphi写的,极有可能是程序没控制好,在数据集打开前操作了数据集

delphi中messagebox函数的用法?
1、函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer;hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口。Text:欲显示的信息字符串。Caption:对话框标题字符串。Type:对话框类型常量。...

delphi 如何取到 提示框中的内容句柄
用EnumWindows函数 \/\/枚举窗口回调函数 function EnumWindowsProc(Wnd : HWND; lParam : LPARAM): BOOL; stdcall;begin \/\/将窗口句柄值在Memo中显示出来 Form1.Memo1.Lines.Add(Format('%.8x',[Wnd]));\/\/返回True继续枚举,返回False停止枚举。Result:=True;end;procedure TForm1.Button1Click(...

我用delphi的dbgrid控件的picklist属性做了个下拉提示框,
只要你设置了pklist,就会有下拉框。但是没用鼠标点击的时候你是看不见的,你先点一下,选定这个单元格,再点一下(就像给文件或文件夹改名),下拉框就出来了,小箭头也出来了。如果你想整个列的下拉框始终显示,就要编程实现了,网上也有这样的例子,找找看吧。

相似回答