设计了一个MDI程序,在MainForm中有一ToolBar,希望在关闭所有的子窗口后,ToolBar上某些Button变为Disable,不知如何控制。
解决方案 »
- 窗体填充必须在paint事件中进行么?
- TNMHttp该如何初始化,或在delphi6/delphi7中有什么好的控件可向指定的url post数据,并获得响应
- 如何在Delphi中调用多个IE窗口实例访问不同的网页?
- 急求解决办法:用ado控件访问sybase11.5,虽然成功,但速度很慢,不可以接受
- 如何直接拷贝文件到一个FTP地址?
- 问题 关于文本文件
- Delphi的Code Exployer作得太差!
- 出售Delphi应用程序源代码!
- 我要用程序象软盘中拷贝一些文件,怎样判断文件是否已经拷贝完成!
- 请教用Delphi处理SQL数据库的效率问题!
- 图像处理高手看过来,看过来,看过来
- 数据库连接的问题!
if mdiform.child[0]=null
button.visible=false;
if MainForm.MDIChildCount>0 then
...
else
...
然后,主窗口判断一下自己的MDIChildCount属性,即可。
FSFORM,。
然后,主窗口判断一下自己的MDIChildCount属性,即可。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus;const
WM_MDICHILDCLOSE = WM_USER + 1;type
TMDIMain = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
New1: TMenuItem;
Exit1: TMenuItem;
nClose: TMenuItem;
N1: TMenuItem;
procedure New1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure WMMdiChildClose(var Msg:TMessage);message WM_MDICHILDCLOSE;
end;var
MDIMain: TMDIMain;implementationuses Unit2;{$R *.dfm}{ TMDIMain }
{ TMDIMain }procedure TMDIMain.WMMdiChildClose(var Msg: TMessage);
begin
if Self.MDIChildCount = 1 then
nClose.Enabled:=False;
inherited;
end;procedure TMDIMain.New1Click(Sender: TObject);
var
frmMDIChild:TMDIChild;
begin
frmMDIChild:=TMDIChild.Create(Self);
frmMDIChild.Show;
end;end.
子窗体:
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TMDIChild = class(TForm)
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;var
MDIChild: TMDIChild;implementationuses Unit1;{$R *.dfm}procedure TMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SendMessage(MDIMain.Handle,WM_MDICHILDCLOSE,0,0);
Action:=caFree;
end;end.
你创建一个MDI工程,在子窗体上建一个菜单,按上面说的,试一试!!