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

Delphi编程技巧十则

HTML文档下载 WORD文档下载 PDF文档下载
Delphi编程技巧十则

Delphi作为一门新起的Windows编程语言,由于其集众多的优秀特性于一身,因而越来越得到广大编程人员和发烧友的青睐。以下十则技巧涉及的面比较广泛,希望能够对Delphi的爱好者有所裨益。

1.类似于vb.中的doevents功能。

大家或许发现,在Delphi中没有类似于vb.中的doevents 函数,这样有的时候,我们将无法使Windows响应多个同时发生的事件。其实,在Delphi的application对象中包括类似的一个方法:ProcessMessage,你可以通过调

用Application.ProcessMessage来完成象vb.中的doevents一样的功能。

2.在Delphi中调用NetscapeNavigator。

随着Internet的火爆,有没有想过在你的Delphi程序中启动Netscape浏览器,显示出你指定的WWW地址的主页。下面这个程序能够完成这一功能。

programNetscape;

usesDDEMan;

procedureGotoURL(sURL:string);

var

dde:TDDEClientConv;

begin

dde:TDDEClientConv.Create(nil);

withddedo

begin

//specifythelocationofnetscape.exe

ServiceApplication:′c:ιns32ιprogramιnetscape.exe′;

//activatetheNetscapeNavigator

SetLink(′Netscape′,′WWW—Activate′);

RequestData(′0xFFFFFFFF′);

//gotothespecifiedURL

SetLink(′Netscape′,′WWW—OpenURL′);

RequestData(sURL+′,,0xFFFFFFFF,0x3,,,′);

CloseLink;

end;

dde.Free;

end;

begin

GotoURL(′http://www.yahoo.com/′);

end.

3.格式化整数输出。

比较大的数字在输出时会显得不易阅读,在Delphi中显示带分节号的数字是相当简单的一件事,如下即可:xxxxx.caption:ΚFormatFloat(′#′,524667500)。

4.在编译时获得提示。

在Delphi2.0中,编译时,可以让编译器告诉你一些提示,比如哪些变量声明了,却从来没有使用过。我们知道,可以通过菜单中的选项来控制是否要Delphi这样做,但如果由于一些特殊需要,你只要在指定的代码段需要Delphi这样的提示,怎么办呢?请参考如下的程序。

{$HINTON}

procedureTform1.Button1Click(Sender:TObject);

var

X:integer;

begin

end;

Reg.WriteString(′desktop′!洌?′);

Reg.Free;

SystemParametersInfo(SPI—SETDESKWALLPAPER,0

,nil,SPIF—SENDWININICHANGE);

end;

6.获得最后使用文件的日期。

在Win95中有一项新的功能,就是可以获得访问文件的最后日期。著名的CleanSweapforWin95软件中就是靠这一功能来作为判断某个文件是否被经常访问的依据之一。

在Delphi中,我们可以通过下面的程序来达到此功能。

functionGetFileLastAccessTime(sFileName:string)

:TDateTime;

var

ffd:TWin32FindData;

dft:DWord;

lft:TFileTime;

h:THandle;

begin

//getfileinformation

h:ΚWindows.FindFirstFile(PChar(sFileName),ffd);

if(INVALID—HANDLE—VALUEΙΛh)then

begin

//we′relookingforjustonefile,socloseour″f

ind″

Windows.FindClose(h);

//converttheFILETIMEtolocalFILETIME

FileTimeToLocalFileTime(ffd.ftLastAccessTime,lft);

//convertFILETIMEtoDOStime

FileTimeToDosDateTime(lft,LongRec(dft).Hi

,LongRec(dft).Lo);

//finally,convertDOStimetoTDateTimeforusein

Delphi′snativedate/timefunctions

Result:FileDateToDateTime(dft);

end;

end;

GetFileLastAccessTime()将会以Delphi的TdateTime

格式返回你所指定的文件的最后访问日期。

7.丰富多彩的标签。

我们已经不满足于Delphi提供的简单的标签,能不能在标签中有不同的字体,有不同的颜色,以此来丰富我们的表现能力。回答是肯定的,并且用不着第三方提供的控件,我们只要巧妙的利用Delphi自己提供的TRichEdit就可以了。首先将TRichEdit控件的边框去除:RichEdit1.BorderStyle:bsNone;同时设置只读属性为真:RichEdit1.ReadOnly:ΚTrue;然后,你利用write之类的软件制作好RichText格式的文本,通过以下语句就可以显示出来了:

RichEdit1.PlainText:False;

RichEdit1.Lines.LoadFromFile(′c:ιtest.rtf′);

8.如何防止Win95显示严重错误。

不管你的程序如何反复调试,交给用户之后,总有可能发生你意想不到的错误,如何避免Win95显示出白色的窗口,告诉你的用户发生了难堪的意外错误呢?我们可以这样做:

var

wOldErrorMode:Word;

begin

//tellwindowstoignorecriticalerrorsandsavecurrenterrormode

wOldErrorMode:SetErrorMode(SEM—FAILCRITICALERRORS);

try

//codethatmightgenerateacriticalerrorgoeshere...

finally

//gobacktopreviouserrormode

SetErrorMode(wOldErrorMode);

end;

end;

主要是利用SetErrorMode()来完成这一功能。

9.刚才用鼠标击了哪一个对象。

在Win95中,鼠标的右键起到了很大的作用,但是,由于历史的原因,对于右键的使用即使在Delphi中,也还不够有效,下面的程序可以告诉你如何知道刚才鼠标右击的对象名称。首先建立一个popmenu,然后以下的代码就可以告诉你刚才右击的对象名称:PopupMenu1.PopupComponent.ClassName。

10.检测CD-ROM或是其他磁盘是否有过变化。

最简单的检查CD-ROM或是磁盘是否有过变化的方法是检查其volume号码。你可以简单地运用下面的函数来返回磁盘的volume系列号码GetDiskVolSerialID(′E′),函数代码如下:

functionGetDiskVolSerialID(cDriveName:char)

:DWord;

var

dwTemp1,dwTemp2:DWord;

begin

GetVolumeInformation(PChar(cDriveName+′:ι′),

Nil,

0,

ΝResult,

dwTemp2,

dwTemp2,

Nil,

0);

end;

Office大肆杀戮,已攻下Chrome Web Store Bug都补好了?Google发布Android 4.4.3更新 微软被传收购Xamarin 强势推进移动新战略 挑战传统金融业务 Facebook进军移动支付领域 亚马逊AWS需解决的五项问题 腾讯自曝:大数据平台的秘密 继Cloudera之后,MapR宣布对Spark的完全支持 企业实施商务智能的6个致命错误 《近匠》HBuilder:如何用JS调用几十万原生API? littleBits新推Cloud Module,普通人也能DIY智能硬件 如何创建浮动式标签模式? Office 365正式落地中国——移动为先,云为先 .NET Native:C++的性能 C#的产能? Arduino联合创始人Tom Igoe:创客,因何而创 【走近院士】高文:多媒体大数据的影响及面临的挑战 微软SQL Server 2014三大新特性:集成内存OLTP、BI和混合云搭建 Linux将会统治桌面端的7个原因 Intel首席科学家Randolph Wang:详解Edison AMD Mantle再添新作,引发下代GPU架构猜想 谈DAM决策,自建还是SaaS 证据显示:Linux战争已经转移到OpenStack RestKit:iOS开发必备,告别众多无聊代码 技术新突破:手机和平板可远程控制PC,Chrome Remote Desktop亮相 物联网高速公路上,快数据如何驱动分析 苹果或将使用雅虎的搜索引擎,抛弃谷歌 百万用户规模的系统如何扩展 大数据需要软件定义存储 倒计36小时!2014中国Spark技术峰会即将召开! 设计师专宠,Startup强大的UI设计框架 走进金山云:从技术走向服务 Qt Creator 3.1.0发布,全面支持iOS、Android、WP 附加数据库 菜鸟问题在线等待 一下子认识4个女孩的坏处:左右为难 ●●●●斑竹看看,这些帖子有没有问题....!!!■■■■■■ 为何在ACL中给用户没有任何权限了,用户还是能创建文档啊,在线等,急。 请大家推荐一下delphi学习com/com+方面的书籍(电子书籍最好) 大家看看我的程序哪儿错了啊? 请教linux下的浏览器?谢谢 刷新窗口用js中的那个函数???? pb中,用ftp传输数据的问题! Installshield如何注册VB的一些库和控件 如何快速计算一个 32 位无符号整数中比特 0 的个数? 推荐几本c#方面的书吧! 电脑声音没有了?怎么回事? 吐血经验!!!delphi用BDE+ODBC的体制开发oralce先天性的缺陷! 关于字符集转换,走过路过千万看看! 无聊啊无聊 写一个最简单的,能调试FSO在服务器上是否有权限??? 请问如何检查远程计算机有没有某一个文件 SOS,问题不难,帮帮新手! 放分,给回复时间离2003-06-06 17:20:00最近的人. 哪里有windows xp sp1+vlk 版的下载? 关于JSP和SERVLET 请问哪里有关于directShow的论坛? Delphi5.0 & Paradox 域的本机模式和混合模式都指的事什么 老师要求编写五子棋的程序可是我实在想不出该怎么设定估价函数啊帮帮忙啊? 关于客户端和服务器端连接的问题 在C书上看到这个题目,不会,请高手帮忙解决一下:) submit与frame 焦点移动的问题……(高分求助)!(--已经发过一次了) 微软,我该如何跟随你?(来讨论一下,没分送哦) 关于Request的问题 向高手请教一些专业网址! 网络IP前后不一样 如何查看csdn的精华帖子? [原创]VC#.NET:XML代码注释在智能感应中的使用 怎样在WIN98下不重新启动就可以删除打印处理器文件? 批量复制数据问题,access数据库 在页面中现实数据库的一个字段(大量的文本),用什么最好?? 一些问题,希望大家给点指点! 谁有那种实现股票走势图/趋势图的那种控件 如何控制随意修改个人IP地址 如何叠加两幅大小相等的图片成为一幅图片?其中上面的图片有透明的部分。 请教一个小小的时钟程序 爱情?亲情?友情? COM+问题 请问有关group by,并且insert数据的问题. 如何设置edit中的内容自动折行,能出现垂直滚动条???在线等待!!! 关于在DLL中使用Mscom控件的问题 如何將字符串以十六進制的形式顯示在Edit中 我们该如何为社会,为人类做更多贡献? 美不胜收什么意思? 人间四月芳菲尽的芳菲是指什么 如图所示,线段ab=4,点o是线段ab上一点,c,d分别是线段oa,ob的中点,小明据此很轻松的求出cd=2. 点C在圆E上,∠DCB=∠CAB,求证:DC是圆E的切线图片 人间四月芳菲尽,尽的意思是什么? 柏拉图对人类社会的贡献是什么? 如图:AB是圆O的直径,C是圆O上一点,过点C的切线与AB延长线交于点D,CE//AB交圆O于点,求证:(1)∠DCB=∠CAB(2)CD.CE=CB.CA 1、伽利略好奇善问 伽利略是意大利伟大的物理学家 晴朗 开心 优美 离开.用上面的词语写一段完整的话! C为圆O上一点,DA交圆O于B,联结AC,BC,且角DCB=角A,求证:CD为圆O的切线 社会关系主要指哪些? 用越……越……造句 最好是适合小学生的 人间什么月芳菲尽 家庭主要成员和主要社会关系,他们现在与本人关系如何指的是什么? 现在社会女人素质这么差,该怎么选购老婆?AIRTAC_DG东莞仔,这题问于我找不找到老婆什么关系呢?你就是相信我有钱能买不到老婆吗? 你真够嫩~ 人间几月芳菲尽 乙醇钠是共价化合物还是离子化合物 与发展对象联系密切的主要社会关系指的是哪些人? 人间什么芳菲尽 芳菲的意思 飞行和飞星有什么意思 MT是什么意思 诗句是谜面,谜底是成语的谜比如:举头望明月,低头思故乡.(触景生情)夜来风雨声,花落知多少。( )孤帆远影碧空尽,唯见长江天际流。( )千里江陵一日还。( ) 黑星很么意思 人间什么月芳菲尽,是什么诗 丰富的近义词和反义词快 12.8g氧气与( )L(标准状况)的二氧化碳气体所含的分子数相同,与( )molNH3所含原子数相同 真三国无双ol5星5特是什么意思 干净的近义词是什么 干净的反义词、同义词 我写化学计算题时老是很马虎,虽然我会写,我怀疑我有“化学题敏感症” 内蒙古在开发煤炭资源的同时,还大规模开发风能,试分析其原因.ps!用专业一点的地理术语. 几何画板怎么用鼠标直接拖动函数图像?RT,之前都可以的,我的“变化”选项“是不能用的,这又是怎么回事? 美不胜收胜是什么意思 已知:如图C为圆O上一点,DA交圆O于B,连接AC,BC,且角DCB=角CAB.求证:DC为圆O的切钱.CD^2=AD*BD 几何画板如何拖动点?用几何画板画函数图的时候需要拖动一个点 但是试了半天总是拖动不了! 国家的实质是什么?A服务全民 B阶级调停 C阶级统治 D管理社会 磷酸二氢钾与十二水磷酸二氢钾一样吗标题错了是:磷酸二氢钠与十二水磷酸二氢钠 哪些食物中乙醇钠 什么是指代表国家从事社会公共事物管理,行使国家政权,履行公务各级组成成员是什么 《静夜思》的意思最好是很长的 人间四月芳菲尽, 国家治理的最根本原则是什么 对比隋唐时期的均田制 人间四月芳菲尽的芳菲尽的意思 从本质上看 国家都是管理社会经济的事务的公共事务机构 是否正确.请详细回答. 美不胜收?是什么意思! 这些物质是什么颜色的啊镁、铝、锌、钾、钠它们中的任何一个溶于硝酸、盐酸、硫酸、碳酸时生成的物质,都是白色的吗?如果不是,那么,有哪些是特殊的呢?还有,硝酸银、硫酸银、硝酸钙、 美不胜收的意思和造句 乙醇钠是离子化合物吗?它他显碱性是不是跟盐类的水解一样,这个酸根叫什么? 物质的颜色F2,Cl2,Br2,I2 1,单质的颜色分别是什么? 2,这几种物质自身溶液的颜色是什么? 3,哪几个能被四氯化碳萃取出来?萃取液的颜色分别是什么? 麻烦大家了!帮帮忙,真心 谁知道 superohm 电阻是哪家电阻的厂商,中文名称是什么? 什么叫“夜未央”?在好多歌词里见过, ★★这些物质通常是什么颜色?★★AgBr,AgI,Ag2S. 铝属于碱金属吗? 夜未央!是什么意思? 人间四月芳菲尽的意思是什么? 谈谈怎样为人类社会做贡献 夜未央是什么很熟悉 人间四月芳菲尽 山寺桃花始盛开的意思 湖北荆门煤矿透水事故续:第一名被困矿南昌市一人大代表涉嫌工程行贿被采取强孟加拉国一列车脱轨 致两人死亡30余西班牙承认与美国在情报搜集方面存在有韩美启动第六轮防卫费分担会谈 意见分任贤良任国家互联网信息办公室专职副主银泰15周年大庆 抢鲜预购卡首次浙江大型留学网站亦邦留学网正式上线中国重拳频出提升巡视反腐透明度 方便遵义市委书记廖少华涉嫌严重违纪被免职中国控烟协会吁问责政府发红头文件摊派专家称伊利方舟工程“双屏互动”实现公首都航空长沙飞杭州航班受爆炸物威胁备“关爱母婴健康”都市月嫂进百企之走进乌克兰加入欧盟协定签署期或推迟到20马英九:做好充分准备应对大陆对台军事大学教授爆料支持转基因副部长曾受聘美66岁精神病老人在医院死亡 尸体三个央行重启7天期逆回购 “锁长放短”思温州一宝马车被撞后烧成空壳 保险过期林书豪喋血砍16分魔兽26板 火箭胜大浪拆除茜坑水库旁9处违建张孝勇书画作品深圳开展惊喜“彩蛋”刘德华: 送成龙大哥一个晶报公益亲子速跑获点赞创新机制“集合力” 优化环境“聚人才光明新区实施“三个一批”改革项目事关城市发展的大事,必须撸起袖子加油去伪存真“材料政绩” 要不得读特“龙岗频道”上线中央第四环境保护督察组交办深圳问题调深圳公共安全指数今日 天气落实安全生产责任 确保市民安全过节耕耘基层12年华润集团多项目落地南山深圳地税去年税收收入2473.9亿模拟联合国青少年峰会 深圳赛区半决赛设“奖学金”考核幼儿 是幼教创举还是中国福利彩票“七乐彩”深圳市创新产业 促进会成立
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘