在panel中创建的一个窗口,如何让它从panel中脱离出来,再全屏显示 ( 积分: 100 )

  • 主题发起人 主题发起人 一少8
  • 开始时间 开始时间

一少8

Unregistered / Unconfirmed
GUEST, unregistred user!
form1 := TForm1.create(panel)<br>form1.parent := panel<br>form1.align := alClient<br><br>这么创建出来的窗口, 会显示在panel中, 现在我想让这个窗口离开panel,全屏显示,应该如何做? 顺便再问一下, 移出来了怎么再把这个窗口放回到panel中去
 
form1 := TForm1.create(panel)<br>form1.parent := panel<br>form1.align := alClient<br><br>这么创建出来的窗口, 会显示在panel中, 现在我想让这个窗口离开panel,全屏显示,应该如何做? 顺便再问一下, 移出来了怎么再把这个窗口放回到panel中去
 
我看楼主的问题就是窗体DOCK的问题吗,处理一下OnDockDrop, OnDockOver, OnStartDock, OnEndDock, OnUnDock事件就可以了
 
可否具体一点, 有演示代码吗?
 
到<br>http://hubdog.csdn.net/Hubdog/dock.htm<br>看看
 
setparent(panel1.handle,getdesktop());<br>panel1.height:=screen.height;<br>panel1.width:=screen.width;<br>panel1.top:=0;<br>panel1.left:=0;
 
将<br>form1 := TForm1.create(panel)<br>form1.parent := panel<br>form1.align := alClient<br>改成<br>form1 := TForm1.create(Application);<br>form1.visible:=true;<br>form1.dragmode:=dmAutomatic;<br>form1.ManualDock(Panel1, nil, AlClient)
 
咦,我发的帖子怎么不见了,再发一个。<br>to:yangmc<br>出来咋办?用代码不用拉的。
 
用两个panel1,panel2<br>panel1.duckset:=true; &nbsp;//作为容器<br>panel2存放子窗体<br>panel2.bragkind:=dkDock;<br>panel2.Dragmode:=dmautomatic<br>ok
 
to 楼主:<br>不知你的变量是否为主窗体的类型,即是否为form1 :TForm1;(TForm1为主窗体)?<br>设置parent为nil就行了<br>有两个窗体Form1(单元为Unit1)为主窗体,另一个窗体为Form2(单元为Unit2)<br>Unit1中uses Unit2并设置一个aForm :Form2;则可以如下:<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br> &nbsp;aForm :=TForm2.Create(aForm);<br> &nbsp;aForm.Parent :=Panel1;<br> &nbsp;aForm.Show;<br>end;<br><br>procedure TForm1.Button2Click(Sender: TObject);<br>begin<br> &nbsp;aForm.Parent :=nil; &nbsp; &nbsp;//从Panel中出来<br> &nbsp;aForm.Align :=alNone; &nbsp;//全屏显示<br>end;<br><br>procedure TForm1.Button3Click(Sender: TObject);<br>begin<br> &nbsp;aForm.Parent :=Panel1; &nbsp;//回到Panel中<br> &nbsp;aForm.Align :=alNone; &nbsp; //全区域显示并可拖动<br>end;<br>不过以上代码对于变量为主窗体不适用
 
后退
顶部