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

2016-01-29 14:14 4 1 收藏

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

【 tulaoshi.com - Delphi 】

 
在我们经常使用的软件,比如photoshop,office,delphi等等,我们经常可以对工具栏进行拖拽操作----将相关的工具栏拖拉出来,形成独立的小窗口;或者将几个工具栏进行互相的组合!(这些就是我们常说的DOCK功能),效果如下图:



DELPHI的工具栏

  其实,利用DELPHI或是其它的可视化编程工具(如c++ builder等)很容易实现上面的功能!下面,我们通过一个小例子来看看它是如何实现的,这里使用的编程工具为Delphi!

  开始实例前,先要说明些东东!(讲些废话先^_^)

  可视化的VCL元件皆支持DOCK功能!
  在delphi中,所有继承自Tcontrol及TWinControl的VCL元件,都支持dock功能。

  基本上,要进行dock动作至少需要两个元件,一个是被附着的dock site元件,另一个是附着在dock site的元件。DELPHI所提供的可视化元件中只有继承自TWinControl的VCL元件才具有dock site的功能,而只要是继承自Tcontrol的VCL元件则都具有附着在dock site的功能。

  * 如果你希望某个继承自TWinControl的元件具有dock site的功能,只要把该元件的属性DockSite设成true即可;
  * 若是要把某个继承自TControl的元件附着在dock site上,只要把属性Drag kind设成dkDock、属性DragMode设成dmAutomatic即可,

  当程序执行后,你就可以利用鼠标把后者元件拖拉到前者元件上,进行dock动作。至于dock的实际动作都被封装在元件内,用户根本不用管这些动作是如何进行的。


马上开始我们的实例!

  新建一个普通的工程(project1),从win32控件页中拖拉一个CoolBar,一个ToolBar,一个ImageList到form1窗体中,属性设置如下:

Form1

 .Caption: 实例一DOCK功能的实现;

 

CoolBar1

 .AutoSize: true;
 .DockSite: true; 
为了一些更好的效果,你可以对BorderWidth,EdgeBorders,EdgeInner, EdgeOuter,进行相关的设置!

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/delphi/)

ToolBar1在ToolBar1元件上点击右键,选择New Button,新建一些按钮,它们之间可以通过New Separator,进行相关组的分隔!

 .Caption:  工具栏(独立出来时窗口显示的标题)
 .AutoSize: true;
 .DockKind: dkDock;
 .DragMode: dmAutomatic;
 .Flat:  ture;(这样好看些)
 .Images: ImageList1;  
同样为了一些更好的效果,你可以对BorderWidth,EdgeBorders,EdgeInner, EdgeOuter,进行相关的设置!

 

ImageList1,
双击该控件,选择Add…,添加几幅图片。这样,可以很方便地将这些图片赋于ToolBar中的Button!

 

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/delphi/)

  点击运行按钮,你拖拽下你的工具栏,是不是马上就可以看到效果啦?我们还没有编写一行代码呢????这就是Delphi的强大之处!

为了更好地进行拖拽操作,我们添加下面几行代码!(主要是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);

来源:https://www.tulaoshi.com/n/20160129/1492811.html

延伸阅读
标签: 办公软件
    在Microsoft Excel中有13个包含按钮的工具栏,这些工具可以帮助我们更快速、更容易地工作。当我们第一次运行Microsoft Excel时,“常用”工具栏和“格式”工具栏会直接显示在菜单栏下面。 2.6.1 使用工具栏     使用工具栏的方法很简单,我们只需在要使用的工具按钮上单击即可。当指向...
标签: Delphi
  1. 控制INI文件几法 要利用.INI文件做程序有关数据的存储工作,就需要能读和写.INI文件,所以列了如下方法给大家参考: 从.INI文件中获取字符串 var strResult:pchar; begin GetPrivateProfileString( 'windows', // []中标题的名字 'NullPort', // =号前的名字 'NIL', // 如果没有找到字符串时,返回的默认值 strResult, //存...
WinRAR如何定制工具栏   在WinRAR的工具栏上有不少的按钮,其实,也可以自由地定制它:启动WinRAR,按下Ctrl+S键,并在打开的设置对话框中选择常规选项卡,点击其中的按钮按钮就可以对工具栏上的按钮和选择一个文件后点击右键出现的快捷菜单中的命令进行添加和删除。经过一番设置,现在的WinRAR就更体贴你的使用习惯了。
在任何 Office Professional 2007 程序中,一项最常执行的操作是设置文本格式。在早期版本的 Access 中,设置文本格式通常需要使用菜单或显示“设置格式”工 具栏。使用 Office Access 2007,可以使用微型工具栏更加轻松地设置文本格式。选择要设置格式的文本后,微型工具栏会自动出现在所选文本的上方。如果将鼠标指针靠近微型工具栏, 则...
标签: 电脑应用
在本教程中我们来看看word2003里“绘图”工具的具体使用方式吧! Word2003的“绘图”工具栏在默认情况下位于程序窗口下方,状态栏之上。通过“绘图”工具栏,可以在文档中插入各种自选图形、文本框、艺术字、线条、箭头等图形对象。 “绘图”工具栏各按钮功能介绍 word2003的“绘图...