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

在按钮中快速启动程序-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 通过

Google等互联网公司将成为创新中心? 在Hadoop的战争中 MapR获新一轮3000万美元融资 初创公司DNNresearch:谷歌科技帝国的新“基石” 创业了,我们该如何起名? 乐视网联手富士康推新盒子C1S “0+290元”新浪微博发售 吸引开发者:只要开发新应用 微软便奖100美元 PaintCode - 将矢量图转化为Objective-C代码的开发神器 苹果发布iOS 6.1.3 封杀evasi0n越狱所用漏洞 [API快讯] Google开放实时协作API 58同城开源轻量级Java Web框架 Argo 初创公司AppNeta:4轮融资,4780万美元 MongoDB释放2.4版本:692更新及8大得意之作 十年6亿美元!Amazon云计算喜获CIA大单! 国人当自强:HTML5+联盟首次筹备会成功举行 开源框架TAAE发布 快速打造iOS音频应用 如何学会600多种编程语言 “第五届中国云计算大会”将于2013年6月5-7日在京召开 Ridiculous Fishing:游戏遭遇山寨如何一雪前耻 老游戏的今天:Doodle Jump每周进账2万美元 剑指Evernote 谷歌正式推出Google Keep 开源的JS MVC框架 Backbone.js 1.0发布 前Facebook资深员工王淮给技术创业团队的十点建议 微软发布Windows Embedded 8系列操作系统 Google Play 4.0抢先体验 中国 vs. 非洲:移动医疗的前世今生 Java大数据框架初创企业Concurrent获400万美元融资 基于Edge Animate开发CSS3 Animations 后端服务商Firebase发布全新iOS SDK [爆料]百度云或在秘密打造实时移动Web App开发框架 打造最佳开发团队的几点建议 Facebook与开发者交恶 扼杀第三方应用 世界著名病毒编写组织和成员介绍,包括大名鼎鼎的29A(希望反病毒厂商能给他们发感谢信!) 各位,请问哪里有在winxp下查看拨号上网密码的软件? 请问到底是xp好还是2000好?或者xp有什么缺点(硬件要求高不算)谢谢! 求VSS6.0C下载 大家觉得:女孩子身高多高最合适? 我想写:select * from talbe where name like '杨%',写到adoquery1.SQL.Text后面怎么写阿?那些''''搞得我昏了,哪个好人来讲讲? 微软出版的《SQL Server2000技术内幕》这套书怎么样,看过的来讲一下啊 c#好还是bcb好?会不会淘汰bcb呀? 讨论!!!大家帮我想想!这样会不会是访问该站点的所有人只用一个SQL线程呢??? 如何在PB下实现Windows风格的标准按钮栏?请高手帮忙,十分感谢! 读DBF中被删除的记录 在div里如何加水平线 Web Service是这样慢吗? FreeBSD下C++语言工程文件的编译问题 此贴开给“zzheaptech(风的往事)”接分,感谢热心的朋友们,向你们致敬! 大家进来给个建义 谁能告诉我资源文件的语法,或者有好的关于C和C++的好网站!谢谢!!! 如何计算当天的时间差值? 这个SQL语句错在哪了? 小弟有四个三角了,放分 都说php用word很简单!!我怎么从来没成功过!!!!?? 不能反问表是什么原因 请问在局域网内的电脑怎么样象电信拨号服务器那样,使之设置成为可以提供拨号服务的主机? 高分求答 文字型简易电子计算器设计 又一个delphi处女作!下载照样送分!提了改进方法的送高分! 菜鸟问题!谁能详细叙述一下,如何将编译过后的exe文件中的数据库正常的链接使用! 大家帮我看看我打印机的问题。 请问怎么设置使局域网内的电脑能象电信那样成为可以提供拨号上局域网服务的主机? 简单的问题.关于MFC命名规则: 老实说,是不是mysql驱动有bug,或者是java.sql.ResultSet类有bug?? 关于QQ的问题,请各位帮帮忙。谢谢! 很简单的问题,JB中用JDBC连接SQL2000怎么不行? sql总是不正解,请看看! 请教各位大侠两个困扰很久的两个问题!!! 高分求救疑难,200分相赠,急!!! 在XP中,无法从右击我的电脑>>管理,进行共享文件或文件夹的设置,急!!! 如何对同时对两个表(一对多关系)进行保存操作? 请问vc能否导入vb作得一些东西,如界面之类得。 在线求解! 如何在客户端用Java检测Radio组的那一个值被选中,在线等待, asp.net高级编程打印中 有没有人能提供点主页空间? 請問Driver跟Firmware有怎樣的分別呢? 通过高级程序员的考试,散分。 简单问题! 在V B中怎样得到当前活动窗口的句柄 寻求超星阅览器注册码 100分 怎样在ADO中执行长sql命令 请问学习JSP周期短还是ASP.NET周期短快??????????? writeXMLFile(String outFile) C++ Builder 加 MO2 的可行性?是不是比VC++ 加 MO2 好? 埃及反对军事打击叙利亚法国慎言军事干预叙利亚美军轰炸传闻在即 以色列群众争抢防毒美发射一颗“间谍卫星”专家认为:美对叙动武为进军伊朗前奏法国调查美“棱镜”计划中新关系开新局英国国会投票反对政府向叙利亚动武西方暂缓对叙开战步伐 联合国化武调查科学家培养出“迷你人脑” 可用于疾病英国防长:英国不会参加对叙军事行动洛杉矶打击酒驾与超速 逾千人被拘捕美国称将按照符合美国利益原则对叙采取美国称将按照符合美国利益原则对叙采取英国防长:英国不会参加对叙军事行动洛杉矶打击酒驾与超速 逾千人被拘捕日本增兵那霸 意在经略西南俄称联合国专家工作中断后不应结束叙化国际新闻早报:美国向叙利亚附近海域增[组图]中国女星闪耀威尼斯 盘点出席邓小平与撒切尔夫人交锋记【助力中考】做好这些小细节能起大作用揭秘:宋代五大名窑之官窑!日媒:中国现役战机多达3000架 构千万别下手 火影手游佐井值不值得购买这个可以有! 专为女孩设计200元就eSmart展会前瞻:VR时代来临世厦门路虎猛撞捷豹,竟因为投资招宝网被内退后还有哪些权利?这些创业公司年融资超过1亿却失败了!体验镭拓 MXX 机械键盘---美的新我智能握力器,释放肌肉的魅力早泄怎么治教你4招穿好凉鞋,好看又不伤脚!夏季养肝的食疗方法人流手术后应该吃什么酒钢集团年年举债600多亿元 去年利三哥享福了!小米5黑色款将加大印度市资本追逐成都网游业 升华拜克16亿收股利支付率达9589% 新三板公司高FixedGear 固齿新手教程——这首百度广告歌好魔性:贴吧女团葫芦姐
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘