关于MDI窗体中DOCK控件控制的问题(50分)

  • 主题发起人 主题发起人 starluck
  • 开始时间 开始时间
S

starluck

Unregistered / Unconfirmed
GUEST, unregistred user!
请各位帮忙,谢谢了。
问题是这样的,我的一个MDI窗体的程序。框架的左边有一个PANEL,我想在子窗体最大化时
他自动隐藏。子窗体正常状态和最小化状态时他会自动显示出来。
 
是不是问题太简单了啊/

帮帮忙,说句话也好啊。分不够可以再给啊
 
问题没陈述明白,还是偶没看明白?
你所说的panel在子窗口内还是在主窗口内?
如果在主窗口内,则在子窗口的OnResize事件内加入以下代码即可。
procedure TMDIChild.FormResize(Sender: TObject);
begin
if WindowState=wsmaximized then mainform.Panel1.Visible:=False
else mainform.Panel1.Visible:=True;
end;
 
你这个方法有点问题,当点击窗口中的最小化按键时取得的状态应该是:wsnormal 或 wsmaximized 所以好像还是有点问题
 
回去试了下,这个方法确实有点问题,最大化时可以,最小化时需要多次才行。重新改了代码,经过验证,完全达到你的要求了。
uses Messages;

private
{ Private declarations }
procedure ShowPanel(var Msg: TWMSize);message WM_SIZE;
......
procedure TMDIForm1.ShowPanel(var Msg: TWMSize);
begin
inherited;
if WindowState <> wsMaximized then 主窗体名称.Panel1.Visible:=True
else 主窗体名称.Panel1.Visible:=False;
end;
 
呵呵,这是我昨天写的的。实现出来的效果都差不多。
不过还是万分感谢!
procedure MDI(var message: Tmessage); message wm_syscommand;
procedure TArchivesFrm.MDI(var message: Tmessage);
begin
if message.WParam = SC_RESTORE then
begin
MainFrm.TBDock1.Visible:=true;
inherited;
end;
if message.WParam= SC_MAXIMIZE then
begin
MainFrm.TBDock1.Visible:=false;
inherited;
end;
if message.WParam = SC_MINIMIZE then
begin
if MainFrm.PgcModule.ActivePage.tag=Handle then
MainFrm.PgcModule.SelectNextPage(true,true) ;
MainFrm.TBDock1.Visible:=true;
inherited;
end
else
begin
Inherited;
end;
end;
 
接受答案了.
 

Similar threads

S
回复
0
查看
896
SUNSTONE的Delphi笔记
S
S
回复
0
查看
873
SUNSTONE的Delphi笔记
S
后退
顶部