如何在Delphi中实现停靠

如题所述

第1个回答  2016-01-11
1、在主窗口中添加四个Panel和四个Splitter,设置对齐上下左右四边。
2、设定四个Panel的属性DockSite属性为True。
3、左右Panel添加 OnDockDrop、OnDockOver、OnUnDock事件如下:
procedure TfrmMain.pnlLeftUnDock(Sender: TObject; Client: TControl;
NewTarget: TWinControl; var Allow: Boolean);
begin
if (Sender as TPanel).VisibleDockClientCount = 1 then
begin
(Sender as TPanel).Width := 1;
end;
end;

procedure TfrmMain.pnlLeftDockDrop(Sender: TObject;
Source: TDragDockObject; X, Y: Integer);
begin
(Sender as TPanel).Width := max(source.Control.UndockWidth,(Sender as TPanel).Width);
end;

procedure TfrmMain.pnlLeftDockOver(Sender: TObject;
Source: TDragDockObject; X, Y: Integer; State: TDragState;
var Accept: Boolean);
begin
if State = dsDragEnter then
begin
(Sender as TPanel).Width := max(Source.Control.UndockWidth, (Sender as TPanel).Width);
end
else
begin
if State = dsDragLeave then
begin
(Sender as TPanel).Width := 1;
end;
end;
end;本回答被网友采纳
第2个回答  2016-01-13
1、在主窗口中添加四个Panel和四个Splitter,设置对齐上下左右四边。
2、设定四个Panel的属性DockSite属性为True。
3、左右Panel添加 OnDockDrop、OnDockOver、OnUnDock事件如下:
procedure TfrmMain.pnlLeftUnDock(Sender: TObject; Client: TControl;
NewTarget: TWinControl; var Allow: Boolean);
begin
if (Sender as TPanel).VisibleDockClientCount = 1 then
begin
(Sender as TPanel).Width := 1;
end;
end;

procedure TfrmMain.pnlLeftDockDrop(Sender: TObject;
Source: TDragDockObject; X, Y: Integer);
begin
(Sender as TPanel).Width := max(source.Control.UndockWidth,(Sender as TPanel).Width);
end;

procedure TfrmMain.pnlLeftDockOver(Sender: TObject;
Source: TDragDockObject; X, Y: Integer; State: TDragState;
var Accept: Boolean);
begin
if State = dsDragEnter then
begin
(Sender as TPanel).Width := max(Source.Control.UndockWidth, (Sender as TPanel).Width);
end
else
begin
if State = dsDragLeave then
begin
(Sender as TPanel).Width := 1;
end;
end;
end;
第3个回答  2016-01-11
Delphi安装目录里面有Demo,自己去找找.

如何在Delphi中实现停靠
1、在主窗口中添加四个Panel和四个Splitter,设置对齐上下左右四边。2、设定四个Panel的属性DockSite属性为True。3、左右Panel添加 OnDockDrop、OnDockOver、OnUnDock事件如下:procedure TfrmMain.pnlLeftUnDock(Sender: TObject; Client: TControl;NewTarget: TWinControl; var Allow: Boolean);begin if (...

winfrom中ToolStrip 与toolbar 怎么设置浮动与停靠
Delphi与VC++比较,Delphi除了不能编译Windows驱动程序(微软规定,驱动程序要取得微软认证,必须使用微软的汇编或C编译器编译。无奈~)外,VC++能做到的,Delphi没有一样不能做(事实上,用Delphi一样可以写驱动程序,只要你愿意)!说到效率,目前VC++的编译器效率和Delphi是不能比的。那是一骑绝尘的...

Delphi 里的on star dock 是什么事件?
在Delphi中只要是从TWinControl继承的控件都支持被停靠(如上面的LeftDockPanel),也就是有DockSite这个属性;所有从TControl继承的控件都支持停靠(如上面的DockableForm),也就是有DragKind这个属性.所以支持被停靠的控件都支持停靠,支持停靠的控件不一定支持被停靠,道理很简单,因为TWinControl继承于TControl。...

Delphi7 将Form添加到一个Panel上
在你的form上 添加Frames控件...

初识Rave
Rave组件的介绍 正如前面我们所看到的 Rave报表组件已经在Delphi 中被默认的安装了 使用过报表组件的开发人员都知道 如果一个好的报表组件就必须具备以下几个特点 ▲简单易用 ▲模块化强 ▲有供开发人员和用户使用的报表设计器 ▲可以与应用程序高度集成 ▲具备优秀的数据库连接能力 而我们已经知道的报表组件QuickRep...

delphi的前景?
编译器比较稳定,不过有些接口不尽人意;图形图象功能比较落伍;多媒体支持一般;普通小程序用Delphi来写不如VB方便;大型软件工程不如VC++,简洁明了;适宜个人或小型公司应用;适宜自动化办公系统开发;不适宜游戏开发、引擎技术和远程交互。不过我还是支持Delphi的,毕竟PASCAL是我的“母语”。

在Delphi中开发使用多显示器的应用程序
显示器是桌面的局部视图 就好像透过窗户看窗外的风景 站在不同的窗前就可以看到不同的画面 同样的 显示器也是一个矩形区域 同样可以通过顶点坐标(Top Left)和宽高来描述它的尺寸 顶点坐标是相对于桌面坐标系原点的 也就是相对于主显示器的顶点 工作区的概念比较简单 它是指显示器中除了任务条和其他停靠在桌面上...

delphi的发展历史?
Module Explore 技术的引入使程序员能够以一致的图形界面浏览和编辑代码。代码导航和类自动生成的功能使程序员只需关注应用程序本身,而不必在输入代码上花费太多精力。IDE 经过重新设计可支持浮动和可停靠的工具栏和窗口,调试器也做了改进。Delphi 4 的MIDAS、DCOM 和CORBA 等技术使Delphi 4 的应用范围...

请问我已经安装了“鱼鱼桌面秀”,但是怎么用啊,原来的那些图标怎么隐藏...
A:XDS 是小鱼利用 Delphi 编写的。由于 Delphi 对 Unicode 支持的并不是太好,所以,XDS 目前还无法完全实现 Unicode 。11.别人的桌面里停靠在屏幕周围的半透明的框是怎么弄的?A:常用的是yzdock,还有RK Launcher,都不错,鱼鱼桌面秀也有,安装一下就可以实现了。这是资源美化区的一个绿色版地址...

什么是ADO
是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。例如,如果希望编写应用程序从DB2或Oracle数据库中向网页提供数据,可以将ADO程序包括在作为活动服务器页(ASP)的HTML文件中。当用户从网站请求网页时,返回的网页也包括了数据中的相应数据,这些是由于使用了ADO代码的结果。

相似回答