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

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;

VB如何设定 MsgBox 在若干时间之后若无回应則自动关闭? VB如何使用VB控件Commom Dialog VB如何用VB6写COM组件(二) VB如何用VB6写COM组件(一) VB如何在VB中使用Delphi的控件 VB如何在运行时动态增加控件 显示和隐藏鼠标-VB资料 VB用ActiveX Control Pad VB用API函数改进ListView 控件的显示效果 用VB6.0中文版进行DHTML程序开发 用VB编写标准CGI程序 用VB编写留言板 用VB播放FLASH动画 用VB开发进程管理软件 VB用WinSock设计Chat程序 运用MSChart,生成统计图形-VB资料 向文本框等等控件的系统右键菜单里追加自己定义的菜单-VB资料 在VB中用定时控件实现长定时操作 在Visual Basic中,在GotFocus事件中快速选定文本 在程序中注册和注销 OCX 控件 -VB资料 在运行时维护DBGRID的栏位宽度-VB资料 VB怎样使用VB开发基于Sybase的C/S软件 VB怎样在运行时动态生成多个相同的控件 直接编辑VB中网格控制项的两种方法 自制控件方面的有关知识-VB资料 Unicode vs Ansi -VB资料 VB 中调用 Word 拼写检查 VB4.0安装程序的汉化 VB中对字符串的处理及其扩展 把符串中的一子串替换为另一子串 -VB资料 把数字转成英文字-VB资料 由于工作需要,将要转到Linux平台,请问那位知道有什么好的SQL Client在Linux下? 你是怎么过的?CSDN无高人?:( 找asp.net入门经典!一定是C#写的!!!在线等! 菜鸟的关于DataGrid的问题 资源管理器中选中的多个文件怎样传给我的程序 什么是“三层数据库”和“嵌入式软件系统”? 什么是“三层数据库”和“嵌入式软件系统”? 类似"hello world"的简单问题,求教 免费ASP空间申请,支持ACCESS 事件的终止? 数据追加求教:谢谢您!!!! 请问InputBox在framework 类库里面有没有代替的阿? 为什么我写到文件中的字符总长度比我实际应该要写的多? 如何使dbctrlgrid多选,并使鼠标右击相当于鼠标左击 关于静态IP地址,急!!! 如何将tomcat做为windows的一项服务启动? 请问各位大虾,哪有paradox(INPRISE 公司产品)数据库(*.DB)的资料? 非法操作的问题 请问各位大虾,哪有paradox(INPRISE 公司产品)数据库(*.DB)的资料? 各位大虾救命啊!请问怎么在一个DIALOG中使用RICHEDITVIEW,谢谢大家了 ACCESS的删除问题 我有“处女”情结,可.............. 菜问题,,马上给分sendto问题 while和for的区别 安装的问题 我喜欢上公司的JJ怎么办????? 谁能帮我反编译?急 1.7gmsdn如何改成3张碟刻出来 启动慢? 有什么方法实现点击"提交"按钮后,弹出一个框显示表单里的数据,"确定"后再提交,"取消"后不提交? 请教vb 字符串问题 急!明天要啊!(帮忙啊!)分在另一贴给! 请问如何创建一个组控件,然后又可以动态调用?请进!:) 用Jbuilder开发,怎样配置才能开发j2me? 关于HOOK和键盘屏蔽的问题??? 如何在自己的网页上嵌入google的页面翻译功能 有关2k的内存问题 阴谋家已被清除!大家尽兴的庆祝呀! 问一下 C++基础的弱智(20分钟内结贴) 高手请看:实形变量在不同的过程中调用问题?(大家都要遇到的问题,来着有分!) 还是没解决呀!!1 350元左右的MP3播放器谁好阿?你给推荐一下? 由于工作需要,将要转到Linux平台,请问那位知道有什么好的SQL Client在Linux下? 昨天做成功了有限集手写汉字识别的程序,高兴,散分!!! SOS。。。一个很基础的问题 。。 系统设计和软件设计的说明书问题 [请问]两个JavaScript问题 一个企业的办公系统,使用人数5k人,预算多少合适? 我中了“冰河” 怎么办? 有点小钱想投资,朋友推荐了网贷平台利融网,但不太清楚年化利率是什么意思, 求解该题第三小问 氧化铁与稀盐酸的反应是溶液中的离子反应么如题.强调了 “溶液中的”离子反应 在英文中,diagonal road 是一种什么样的路?对角路?不明白这是什么东西…… 第三题第三小问怎么算? 在化学试剂中的漂白剂 能除去所有有色溶液的的颜色吗?例如Na2O2 大肠杆菌某一多肽基因的编码链的序列是:5′ACAATGTATGGTAGTTCATTATCCCGGGCGCAAATAACAAACCCGGGTTTC3′⑴写出该基因的无意义链的序列以及它编码的mRNA的序列.⑵预测它能编码多少个氨基酸. 按题目列式计算解答. 药物制剂稳定性试验中的留样观察实验是什么,为什么药制课本上没有?它跟长期试验,或影响因素试验有关系吗? 为什么核酸中含有稀有碱基或稀有核苷?有何生物学意义? 题目↓(要列式计算)给幼儿园大班40个小朋友分苹果,每人2个就剩一些,每人3个就不够分,剩下的和不够的同样多,共有多少个苹果? 药物制剂稳定性重点考察项目有关物质是什么 每个蛋白质都有一、二、三级结构么?酶促反应中决定酶专一性的是那个部分酶促反应中决定酶反应性质的是那个部分tRNA的柄部在蛋白质生物合成时的作用 我的英语考试题 我对下答案 谢谢1.When are you going to hainan? I‘m going there----------june A With B O n C at D in 2.-------------? I have a sore throat. A What are you doing ? B 人品药剂是什么? 初中物理第15,求解释 英语考试题的答案一、找出画线部分的读音不同于其他的升一项,将标号写在括号内.( )1、bread 2.head 3.ready 4.teacher( ) 1.look 2.room 3.book 4.good ( ) 1.yellow 2.window 3.cow 4.know( )1.white 2.where 3.what 4.who( 惯性定律和惯性的本质是什么 初中物理15种研究方法 英语考试题目,大家帮忙给我选下答案第1题题目:The best students are ______ special scholarships. 可选答案: 1.rewarded 2.awarded 3.compensated 4.refused 第2题 题目类型: 单选题 题目:It ______ that the j 内燃机与发动机有什么区别? word中怎样把文字均匀排放在360度的圆上 .生物氧化主要通过有机物质 反应实现的,生物氧化产生的H2O是通过 形成的. 在线英语考试题1,What makes a person a scientist?Does he have ways or tools of learning that are different from those of others?The answer is "no".It is not the tools a scientist uses but how he uses these tools that makes him a scientist.You w 葡萄的产量一亩大约是多少 机械能,这一题怎么写,为什么?第15题 求正确答案,这是英语考试题~Nearlyfive million people see Grand Canyon (大峡谷) each year.Most ofthem see it from their cars at overlooks along the South Rim.The South Rim isthe easiest to reach in the park..TheSouth Rim is open 24 hours 陕西一亩葡萄的产量是多少呢 这是什么原因?冬天手冷时,用嘴向手上“哈气”,即缓慢地吹 气,手感到暖和,而用劲向手上吹气,手不但不会暖和,反而会更冷.这是什么原因? 图中()号图形是1号长方形放大后的图形,它是按():()的比放大的. 要求是AAA+AA+A+A=BBBc 大中小的“中”的英文单词是什么? 什么是氧族元素? Cross the road啥意思 氟化氢铵对人体的危害浓度 氧族元素1.实验室制取SO2为什么只用中等浓度的H2SO4,不用浓H2SO4或稀H2SO4呢?2.为什么SO2不能使酸碱指示剂褪色? cross the road的中文意思 为什么人会变傻 什么叫氧族元素 cross the road的意思 氟化氢铵的化学性质及如何与三氯氢硅反应,与皮肤接触有哪些危害?当使用氟化氢铵溶液擦洗三氯氢硅时应注意哪些问题?氟化氢铵分解后的水溶液有哪些性质?三氯氢硅是附着在物体表面 关于氧族元素的问题下列事实能说明元素R一定是氧族元素的是A R为非金属元素,其氧化物对应水化物的化学式H2RO3B R的单质与H2生成H2RC R的单质可与Al反映生成Al2R3D R的氢化物的水溶液显酸性 dont cross the 全部症状:比如记忆力不好 集中力不好是代表变傻了吗 还有想太多会变傻吗 换个环境会变傻吗 太无聊会变傻吗 吃无限极的增健会变傻吗 我都觉得自己头天天晕晕的 想得太多了 我怕自己 氧族元素的题2 工业上从含硒的废料中提取硒的方法之一是用H2SO4和NaNO3处理废料,获得亚硒酸和少量硒酸,加入盐酸共热,硒酸被转化为亚硒酸:2HCl+H2SeO4=H2SeO3+Cl2↑+H2O再将SO2通入亚硒酸的溶液 cross the road中文是什么? 生物化学问题..关于蛋白质折叠..知道的帮个忙吖~~~感激!不定项选择,麻烦详细解释一下可以么~谢!下列关于蛋白质折叠的描述正确的是( ).A 可以使蛋白质序列上某些处于离散位置的氨基酸 1斤奶出多少酸奶 Ni(CO)4 为什么不是dsp2杂化?CO不是强配体吗?而Ni的价电子轨道挤一挤的话就会有1个空的d轨道了,那为什么Ni(CO)4不是dsp2而是sp3呢? Cu2+的杂化轨道的方式到底是dsp2还是sp3d2?求轨道表达式或电子排布式——这个必须有(关键问题)书上写dsp2的形成是3d轨道激发到4p上,那么该电子易失去,成Cu3+,这肯定不对,于是书上说晶体场 氧族元素随着核电荷数/////的增加?原子获得电子的能力如何? 请教高中物理光学问题为什么筷子插到水中时,人所看到的筷子会变粗 s电子绕核旋转,其轨道为一圆圈,p电子是走8字形判断题 并给出理由 下列曲线分别表示元素的某种性质与核电荷数的关系(Z为核电荷数,Y为元素的有关性质)把与下列的元素有关的性质相符的曲线的标号填入相应括号中:(1)第三周期元素单质的熔点( ) 请教一道高中物理光学题如图,MN是竖直放置的长L=0.5m的平面镜,观察者在A处观察,有一小球从某处自由下落,小球下落的轨迹与平面镜相距d=0.25m,观察者能在镜中看到小球像的时间△t=0.2s.已知观 关于氟化氢铵的出口氟化氢铵 是不是破坏臭氧层物质?出口这个需要向商务部申请专门的出口许可证么? FE\ GE\ 走IP的物理线是什么?光纤是能传递ATM或者IP的信号对吗?155M SDH这些之类的都是什么啊?电口光口都是什么啊?有点混乱 谁能给我解释下责任的含义,你自己理解的责任与爱的关系,责任与快乐的关系等不要复制的,要你自己理解的 什么物质可以在氟化氢铵中长期存放!我们公司需要在氟化氢铵溶液中放置超声波装置,但是氟化氢铵溶液的腐蚀性太大,很短的时间内超声波就坏了,想问一下有什么好的处理方法吗?超声波是 我明年九月要出国,可是托福现在只有40分,要怎么样学,可以考到一百分 阿根廷执政党保住国会最大党地位 但选加拿大婚外情网站欲进驻新加坡 遭民众印度拟射火星探测器 欲争亚洲第一被批美监管机构调查房地产信托投资基金日本一杂志启用胖模特 专为胖女孩设计德国政界对美监听默克尔愤怒 欲传唤斯美媒:监听默克尔行动在奥巴马得知后便美国多名政客支持监听行为 称总统不必习近平会见南非副总统莫特兰蒂法国极右政党领导人演讲 遭乌克兰女权浙江临海户外休闲用品展开幕 欲探索跨美国多名政客支持监听行为 称总统不必韩总统好感度调查出炉 卢武铉居首李明法国极右政党领导人演讲 遭乌克兰女权澳媒称中国买家推动悉尼当地房价升高2法国极右翼领导人遭女权活动人士裸胸抗今秋首次暴风强势登陆法国 数万家庭断澳农民呼吁设“全澳产”通道为本地产品德媒:奥巴马早知默克尔遭监听 彼此难以色列耄耋作家展望巴以和平并存 遭官美一男子为取啤酒冒险重返失火房屋险些启动抄底模式郑州百荣月饼展销会开幕16辆班车专跑农村 还装了GPS和摄重庆农商行 创业梦想秀活动进行中居民e服务来了狂风刮飞百平米彩钢雨棚 砸断输电线缆改善单位楼院环境小区环境待改善品牌婚介降低小微企业融资成本 银监会破解“倒市区中招分数线普遍下降百灵杯:“韩流”逆袭美国启动熊猫“宝宝”家具奥特莱斯 皮床仅卖3980元“鲁班节”部分1折产品>省慈善总会半年迪亚曼蒂被足协处罚贫困高中女生大学女生 可向妇联申请资美职篮将与翱龙对决动 态专题议政航空港区建设
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘