delphi实例编程之--制作可随处拖放的工具栏

2004-02-14 09:34 出处:PConline 作者:atun 责任编辑:pjl

  为了更好地进行拖拽操作,我们添加下面几行代码!(主要是CoolBar1的onDragOver、onDockDrop和UnDock事件);源程序如下(很短,不要以为我偷懒)!(打包下载源文件与执行程序) unit sample1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ImgList, ComCtrls, ToolWin; type TForm1 = class(TForm) ImageList1: TImageList; CoolBar1: TCoolBar; ToolBar1: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ToolButton7: TToolButton; procedure CoolBar1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); procedure CoolBar1DockDrop(Sender: TObject; Source: TDragDockObject; X, Y: Integer); procedure CoolBar1UnDock(Sender: TObject; Client: TControl; NewTarget: TWinControl; var Allow: Boolean); procedure ToolButton1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.CoolBar1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept:=(source=ToolBar1); //指定接受拖拽操作的条件是拖拽对象为ToolBar1; end; procedure TForm1.CoolBar1DockDrop(Sender: TObject; Source: TDragDockObject; X, Y: Integer); begin ToolBar1.AutoSize:=false; //当元件拖到dock site元件上面,并且放开鼠标左键之后,此事件就会被执行 ToolBar1.Align:=altop; //为了便于拖拽,将toolbar1的宽度与coolbar1相近. ToolBar1.Width:=CoolBar1.Width-1; end; procedure TForm1.CoolBar1UnDock(Sender: TObject; Client: TControl; NewTarget: TWinControl; var Allow: Boolean); begin ToolBar1.AutoSize:=true; //当元件一拖离dock site元件时,此事就会被执行 ToolBar1.Caption:='工具栏'; //设定独立工具栏窗口的大小和标题 end; procedure TForm1.ToolButton1Click(Sender: TObject); begin Close; //退出程序 end; end. 下面列出与DOCK功能有关的事件: OnDragDrop: 当元件被拖动时,此事件被执行; OnDragOver: 用于指定元件可以被拖动的条件; OnDockDrop: 当元件拖到dock site元件上面,并且放开鼠标左键之后,此事件就会被执行; OnDockOver:当元件一拖到dock site元件上,此事件就会被执行; OnUnDock:当元件一拖离dock site元件时,此事就会被执行; OnGetSiteInfo:取得dock site元件的一些信息。   好了,通过一个小小的拖放工具栏的例子,我们马上就可以体会到Delphi的易用与强大之处!以后我会继续写一些关于用Delphi进行实例编程的文章!各位Delphi爱好者,大家将Delphi进行到底吧!小生水平有限,如有不对之处,请各位网友指出!谢谢! aatun@163.net
键盘也能翻页,试试“← →”键
分享到: QQ空间 新浪微博 腾讯微博 更多
相关文章
相关文章
相关软件