Delphi中停靠技术的实现就可以有停靠的功能了。具体的做法这里不再阐述了,相信对VCL有深刻研究的大虾都知道怎么做了。 下面我来讲一下两个窗体怎样停靠成PageControl样式。 首先创建一个窗体,叫TabHost,在它上面放一个PageControl,Align属性设成alClient,让它占满整个TabHost,别忘了把PageControl的DockSite属性设成True. 然后我们依次加入代码: procedure TDockableForm.FormDockOver(Sender: TObject; Source: TDragDockObject; X, Y: Integer; State: TDragState; var Accept: Boolean); var ARect: TRect; begin Accept := Source.Control is TDockableForm; if Accept then begin ARect.TopLeft := ClientToScreen(ClientRect.TopLeft); ARect.BottomRight := ClientToScreen(ClientRect.BottomRight); Source.DockRect := ARect; end; 和 procedure TDockableForm.CMDockClient(var Message: TCMDockClient); var Host: TForm; begin if Message.DockSource.Control is TDockableForm then begin Host := TTabHost.Create(Application); Host.BoundsRect := Self.BoundsRect; Self.ManualDock(TTabHost(Host).PageControl1, nil, alClient); Message.DockSource.Control.ManualDock(TTabHost(Host).PageControl1, nil, alClient); 更多相关文章
|
推荐文章
精彩文章
|