delphi能做到这一点吗?(50分)

  • 主题发起人 主题发起人 biyesheng
  • 开始时间 开始时间
B

biyesheng

Unregistered / Unconfirmed
GUEST, unregistred user!
form的close事件能否重载?
或者在form.onclose事件里不关闭窗体?
我在form.onclose里选择是否关闭窗体,如何让程序当选择“否”时让窗体不关闭?
 
有这么麻烦吗? 运行下面的代码窗体就不能关闭了,你自己加点判断吧。

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Abort;
end;
 
我是想在点击程序窗体右上角的那个“X”时出一个判断,当选择“否”时不关闭窗体
怎么做到呀?
 
FORM还有个时间叫CLOSEQUERY
你只要在里面写代码一般是
if messagebox(fORM1.Handle,'你真的要退出吗?','退出询问',4+32+512)=6 THEN
FORM1.CLOSE
ELSE
EXIT;






 
procedure TfmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := MessageBox(Handle, '你真的要退出本系统吗?', '提示', MB_YESNO + MB_ICONQUESTION) = IDYES
end;
 
interface

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

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function closequery :boolean; override;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;

function TForm1.closequery: boolean;
begin
if application.MessageBox('do you want close', 'query close', MB_OKCANCEL)
<> IDOK then result := false else result := true;
end;

end.
 
令X失效!

在form的onclosequery事件中设置为false即可
or
procedure TForm1.FormShow(Sender: TObject);
var
fwnd,handle:thandle;
begin
fwnd:=form1.Handle;
handle:=getsystemmenu(fwnd,false);
removemenu(handle,7,mf_byposition);//去关闭按钮
removemenu(handle,6,mf_byposition);//去关闭按钮
removemenu(handle,5,mf_byposition);//去关闭按钮
form1.Refresh;
end;
 
if Application.MessageBox(pchar('不要关闭好吗?'), '关闭确认',
MB_OKCANCEL + MB_DEFBUTTON1 + mb_IconStop + mb_ApplModal) = IDOK then
Abort;
 
在closequery中写
CanClose := MessageBox(Handle, '你真的要退出本系统吗?', '提示', MB_YESNO + MB_ICONQUESTION) = IDYES
 
这是在送分吧! [:D][:D][:D]
 
如果在是子窗体
则只要在onclose 中设置 action
当action:=cafree 则关闭窗体
否则不关闭只是最小化
 
多人接受答案了。
 

Similar threads

回复
0
查看
804
不得闲
S
回复
0
查看
681
SUNSTONE的Delphi笔记
S
S
回复
0
查看
768
SUNSTONE的Delphi笔记
S
D
回复
0
查看
825
DelphiTeacher的专栏
D
后退
顶部