我想做一个跟VC++一样的用户界面,就是左边的工作区与编码区相关,当工作区移动时编码区也会响应的移动
解决方案 »
- 怎么取到另一程序弹出消息框中的提示信息的文本?
- 求救:高手帮忙!!!!!
- 如何在treeview里面增加一个header像listview那样?
- 想转行搞餐饮业,帮我的饮食店起个名字,要有个凯字!!!各位帮忙想想:)
- 怎樣在Delphi中調用PowerPoint文檔﹖
- 大家談一下delphi +erlang開發三層
- 八周年IT认证论坛开放注册
- Xp下 Webbrowser 静音
- 怎么用DELPHI做图象的伪彩处理?
- 在Delphi中怎样调用API函数?(不许笑*^_^*)
- 如何用一个ADOconnection实现多个窗口的共用?
- DELPHI里面用什么函数产生唯一识别码GUID??????????????
dockSite : true
dragmode : dmautomatic
dragkind : dkdock然后运行程序,你拖动panel1,看看是不是你要的效果
在不同的情况下,可以把工具栏拖放到窗体的不同位置。
例程说明如何制作可随处拖放的工具栏。
1) 通过File | New Application创建一个新工程。
2) 在窗体F o r m 1中添加一个To o l B a r组件,将D r a g M o d e属性设置为d m A u t o m a t i c,将
A u t o S i z e设置为Tr u e。在To o l B a r 1上单击右键,使用菜单命令New Button为To o l B a r 1组件添加
一些按钮。
3) 在窗体F o r m 1中添加一个I m a g e L i s t 1组件,通过右键弹出的菜单命令ImageList Editor. . .对
按钮图标进行编辑,并将To o l B a r 1组件的I m a g e属性设为I m a g e L i s t 1。
4) 拖放工具栏的过程实际上是一个拖曳操作。当拖曳操作的源组件为To o l B a r 1且拖放结束时位置靠近窗体的边框,则令窗体接受拖曳操作,即设置窗体的A c c e p t属性为Tr u e,允许该组件放下。下面添加窗体F o r m 1的O n D r a g O v e r事件的处理过程如下:
procedure TForm1.Form1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
b e g i n
// 在一定条件下接受拖曳操作
A c c e p t : = ( S o u r c e = To o l B a r 1 ) a n d ( ( x < 6 0 ) o r ( x > Wi d t h - 6 0 ) o r ( y < 6 0 ) o r ( y > H e i g h t - 6 0 ) ) ;
e n d ;
5) 当拖曳操作结束时,根据释放鼠标的位置确定工具栏停靠的位置。添加To o l B a r 1组件的
O n E n d D r a g事件的处理过程如下:
procedure TForm1.To o l B a r 1 E n d D r a g ( S e n d e r, Target: TObject; X, Y: Integer);
b e g i n
// 在To o l b a r 1拖放结束时,重新设置它的A l i g n属性
if X<60 then
下载
ToolBar1.Align:=alLeft // 左
else if X>Form1.Width-60 then
ToolBar1.Align:=alRight // 右
else if Y<60 then
To o l B a r 1 . A l i g n : = a l Top // 上
else if Y>Form1.Height-60 then
ToolBar1.Align:=alBottom; // 下
e n d ;
e n d ;