模式和非模式对话框

原创 2007年09月17日 14:24:00

Delphi的模式窗体两种方式:
方式1、
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2 := TForm2.Create(Application);
  try
    if Form2.ShowModal=mrok then
     showmessage('ss');
     {其它操作}
  finally
    Form2.Free;
    Form2:=nil;
  end;
end;
方式2、
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2 := TForm2.Create(nil);
  try
    Form2.ShowModal;
  finally
    Form2.Free;
    Form2:=nil;
  end;
end;

非模式窗体
procedure TForm1.Button1Click(Sender: TObject);
begin
  if not assigned(Form2) then
    Form2 := TForm2.Create(Application);
  Form2.show;
end;
注:如果非模式窗体的属主对是nil不是Application,也就
说如下
procedure TForm1.Button1Click(Sender: TObject);
begin
  if not assigned(Form2) then
    Form2 := TForm2.Create(nil);
  Form2.show;
end;
那么这种窗体需要手工释放窗体内存:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caFree;
end;
不仅是手工释放窗体内存,还要将窗体变量Form2的指针置为空:
procedure TForm2.FormDestroy(Sender: TObject);
begin
  Form2:=nil;
end;

 

非模式对话框.rar

  • 2007年06月11日 19:48
  • 34KB
  • 下载

关于非模式对话框窗口及其对象的概念

关于非模式对话框窗口及其对象的概念,请参见《vc技术内幕》p127-p132中的几段话: 请参见《vc技术内幕》p127-p132中的几段话: 1、对话框的创建和取消完全取决于用户操作(通过Des...

非模式对话框向视图传递消息

  • 2009年05月29日 12:41
  • 44KB
  • 下载

MFC应用程序中处理消息的顺序,创建窗口的过程关闭窗口的顺序(非模态窗口),打开模式对话框的函数调用顺序

MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc() ...

为什么我的非模式对话框在create时出错?

为什么我的非模式对话框在create时出错? [问题点数:20分,结帖人WecanHuang]         不显示删除回复       显示所有回复        显示星级回复     ...

MFC应用程序中处理消息,创建窗口的过程,关闭窗口(非模态窗口),打开模式对话框等的函数调用顺序 .

MFC应用程序中处理消息的顺序 ·   MFC应用程序创建窗口的过程 ·   MFC应用程序关闭窗口的顺序(非模态窗口) ·   MFC应用程序中打开模式对话框的函数调用顺序 ·   MFC应...

MFC应用程序中处理消息的顺序,创建窗口的过程关闭窗口的顺序(非模态窗口),打开模式对话框的函数调用顺序

MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndPro...

MFC应用程序中处理消息的顺序,创建窗口的过程关闭窗口的顺序(非模态窗口),打开模式对话框的函数调用顺序

from:http://www.cnblogs.com/lidabo/archive/2012/08/24/2654675.html MFC应用程序中处理消息的顺序 1.AfxWndP...
  • mail_cm
  • mail_cm
  • 2013年06月19日 14:25
  • 1048
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模式和非模式对话框
举报原因:
原因补充:

(最多只允许输入30个字)