说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在按钮中快速启动程序-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
在按钮中快速启动程序-Delphi资料

在使用Netscape的navigator时不知你有没有注意到:在它的状态栏有一组按钮,这使我们能很方便地打开另一个窗体,更有效地利用时间(要知道网上冲浪时间就是金钱啊!)。

接下来我要讲的是如何在我们的程序中加入此功能,我们可以用DELPHI很轻易地实现,在DELPHI中我们可以指定某个Twincontrol类(如Ttoolbar)的父级为另一个Twincontrol(这里是Tstatusbar),然后通过动态创建Ttoolbar就可以在Tstarbar上创建TToolbar了,并且为工具条(Toolbar)添加按钮及其事件,通过调用API中的winexec实现对Window的应用程序的调用。下面给出了详细的代码和注释给大家分享。

unit superbar;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs,ComCtrls;

type

TForm1 = class(TForm)

StatusBar1: TStatusBar;{为窗体添加一个状态栏}

procedure FormCreate(Sender: TObject);

private

{声明以下过程}

procedure createsuperbar(sender:Tobject;Imagelist:TImagelist);

{创建工具条}

procedure createbutton(toolbar:TToolbar;Const ButtonCaptions: array of String);

{创建工具条的按钮}

procedure superbuttonclick(sender:Tobject);

{为工具条按钮添加事件}

public

end;

var

Form1: TForm1;

toolbar:TToolbar;

implementation

uses shellapi,commctrl;{注意要加入此句,否则程序运行无法通过}

{$R *.DFM}

procedure TForm1.createsuperbar(sender:Tobject;Imagelist:Timagelist);

begin

toolbar:=TToolbar.Create(self);{动态创建一个工具条}

with toolbar do

begin

parent:=statusbar1;{定义toolbar的父类为状态栏,这样就可以创建出状态栏的工具条了}

top:=1;left:=1;height:=18;

buttonheight:=16;buttonwidth:=16;{定出toolbar和toolbutton的宽度长度};

flat:=true;autosize:=true; {设置toolbutton为浮动形式}

images:=imagelist;{设置toolbutton的图标}

{使工具条可以脱离状态栏.注意:如果你用的是DELPHI3.0需删除此两句,即可用}

dragkind:=dkdock;

dragmode:=dmautomatic;

end;

end;

procedure TForm1.createbutton(Toolbar:TToolbar;Const ButtonCaptions: array of String);

var

I,m: Integer;

begin

m:=0;

for I := 0 to High(ButtonCaptions) do

begin

with TToolButton.Create(ToolBar) do

begin

Parent := ToolBar;

Caption := ButtonCaptions[I];

onclick:=superbuttonclick;{为toolbutton增加鼠标click事件}

if (ButtonCaptions[I]=‘|’) then{判断是不是分隔符}

begin

Style := tbsSeparator;

m:=m+1;

end

else

begin

Style := tbsButton;

imageindex:=i-m;

end;

end;

end;

end;

{这里是响应鼠标事件,实现应用程序的打开}

procedure TForm1.superbuttonclick(sender:Tobject);

begin

winexec(pchar((sender as TToolbutton).caption),SW_ShowNormal);

{打开一个Windows的应用程序}

end;

procedure TForm1.FormCreate(Sender: TObject);

const

ExeList:array[0..2] of String=(

‘winfile.exe’,

‘|’,

‘notepad.exe’);{可以在这里加上其它应用程序的全称,也可以不要分隔符}

var

imagelist:Timagelist;

i:integer;

begin

imagelist:=Timagelist.Create(self);

try{加入安全代码,也可不加}

for i:=0 to high(exelist) do

if exelist[i] <> ‘|’ then

begin

ImageList_AddIcon(ImageList.Handle,ExtractIcon(Handle,PChar(ExeList[i]),0));

{为imagelist添加图标}

end;

createsuperbar(self,imagelist);

createbutton(toolbar,exelist);

finally

end;

end;

end.

以上程序已在Pentium-MMX166 32M Windows 98 DELPHI 4.0 通过

用Delphi进行数据库之间转换 用Delphi开发“瘦”单机数据库应用系统 用Delphi如何实现VFP中的Cache特性 用Delphi设计数据库应用的几点体会 在我们日常工作中,常会碰到这样一个难题:一大堆-Delphi资料 用DELPHI制作应用软件 用Dephi 程 序 维 护Paradox 数 据 表 的 索 引-Delphi资料 用Dephi程序维护Paradox数据表的索引-Delphi资料 用InstallShield制作数据库应用系统的安装程序-Delphi资料 在BDE中使用ASCII-Delphi资料 在DBMemo中查找文字-Delphi资料 在Delphi 程序中维护DBF 数据库 在Delphi 中 利 用 Tbatch 组 件 完 成 数 据 批 处 理 在Delphi 中使用计算出的字段 在Delphi3 程 序 中自 动 检 测、 建 立 数 据 库 别 名 和 表 格 在Delphi3程序中自动检测、建立数据库别名和表格 在Delphi4 BDE中配置Access数据库 在Delphi5 中修改了Delphi自带的VCL Source文件后怎样重建Delphi的库文 在DELPHI程序中动态设置ODBC数据源 在DELPHI程序中使用ADO对象存取ODBC数据库 在DELPHI程序中自动设置ODBC数据源 在Delphi的DBGrid中插入其他可视组件 在Delphi的Socket编程中如何从服务器向指定的客户机发送信息? 在Delphi动态生成定义数据库 在Delphi中处理数据库日期型字段的显示与输入 在Delphi中简单实现多重查询 在Delphi中建立和使用别名 在DELPHI中使用ADO对象存取ODBC数据库 在Delphi中使用DBF数据 在Delphi中随意控制DBGrid 每一行的颜色 在Delphi中自动检测、建立数据库别名和表格 我是程序员,她是美工,为什么爱的这么难 各位老师,我在登录lotus notes时,点击“进入”按纽在进入系统之前,系统会提示出错信息“Generic LSE failure (no more info),请问是怎 [在线求救]:filedataTime()这个函数为什么没有?? 一个很搞笑的问题,望各位高手解决一下,谢谢。 怎样用VC调用WEB SERVICE服务?(急) win2000设置文件夹共享不能设置密码吗? 在创建基于对话框的应用程序时,为何通过函数PreCreateWindow来修改对话框的风格会无效? 用sqldmo可以实现事件探查器的功能吗? 高手帮忙. 怎样设置全局变量?急! NOKIA6610手机用数据线怎样和电脑相连? C问题,一函数输入参数为一个,要求输出参数为五个,怎么办? 急送分,不知道这个问题算不算挑战,DataTable的合并问题? 请教各位高人应该如何实现这样一个功能的自定义标签? 难题,如何把二维数组传给函数 关于在datagrid中超链结和 pager问题,有耐心和热心的人请帮我看看 我是学php的. 大家来讨论一下C# 和Java ,回贴均有分!! DB2的自增型变量怎么设?? 我是学php的. 谁可以讲解一下telnet的工作原理????? 狂人语录 那有BOCHS的中文帮助 在server2003操作系统下使用sql server2000 的问题 各位大侠 请问如何在C/s 下Windows程序中 找一个控件 100分 朋友! 关于英文版VC6的问题 请大师指点ASP中unicode to ansi 的问题 richtext中RtfText的内容如何编辑?200分,解决问题另外奉送! 即将前往恒生面试,大家帮我看看需要准备什么. 那有BOCHS的中文帮助 phoenix7789请回答!!!^_^ 我在装Report Machine控件时,Delphi提示我找不到RXGIF.duc,谁在给我一个? 肤色检测的问题,急!!! 如何对asp.net的程序进行加密 用datagrid问题,总是提示列键信息不足或不正确,更新影响多行, 大家来讨论一下C# 和Java ,回贴均有分!! 请问一个sql语句写法问题,100分!!!在线等待 谁能给我一点写网站制作方面投标书或者详细方案 wsad5 怎么连上ORACLE数据库啊 并非复古——关于微内核模式ASP开发框架的讨论,欢迎高手进入! 那有BOCHS的中文帮助 我愿送500分求解JAVA问题!!!!!! 关于frame里面的参数传递问题,火急 find函数的问题,请各位老兄帮忙 请问这个链接怎么写? 用xsl将xml转成html提示.... 为什么看不到邻近计算机? 关于浏览器的自定义工具栏! 无法打开web项目bbs 请告知可以下载Domino数据库安装文件和Lotus Notes的网址!在线等 我的ie6无法加载applet,请教解决方法! 成语达人请进形容自己把自己毁了用什么成语? 阴沟里翻船是什么意思? "大意失荆州","阴沟里翻船"这种意思,英语里的表达是? 什么叫“阴沟里翻船”? 阴沟里翻船是什么具体意思? 什么叫做阴沟里翻船? 浑灏沉潜什么意思 小学五年级的法制小论文怎么写 求成语达人( )强(  )急 橐龠是什麼意思!在里看到这个词不知道何解!请指名, 请达人帮忙这些成语怎么填 以色列军方与武装分子在加沙地带交火 日举办美魔女大赛 60岁佳丽身材如少Facebook首次承认传闻:年轻人塞拉利昂外长将访华广州警方处理病人家属殴打医生事件 3马来西亚移民局前总监被判处贪污罪名成巴西副总统将访华海外赴澳工作人员升至173万人 威胁浙江将出台“社会组织建设”地方标准浙江汽车消费增幅回升 金银珠宝类商品中央巡视组已进驻广东等7地区单位 联打新资金归来,助力题材行情燃烧哪些国家的高级官员参加了第二届世界互中国版“漫威宇宙”网易五龙珠召唤《逆只买对的不买贵的,四步帮你选好行车记2016款三星A7/A5国行版开卖 “最牛开发商”被查 65层高楼成国内国内成品油降价落空 发改委称:一切为从生产价格分析:石油下跌非OPEC减便宜不好占,异地购车不要只看优惠《天谕》资料片定名“神翼之战” 更新金花股份(600080)收益超15%
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘