Delphi之快速设计(程序设计篇)
2008-04-09 04:30:00来源:互联网 阅读 ()
由于Delphi采用了真正的完全面向对象方法、当今世界最快的编译器以及领先的数据库技术,特别是她对Windows API的完全兼容,出色的代码自动生成能力……人们已经看到,在短短的几年当中,Delphi已在众多的开发工具中脱颖而出!正是Delphi的诸多优秀品质,使程序员能在很短的时间内开发出极具专业水准的运用软件,而所做的工作却是相当的少!
正所谓Let''''s us make better!我们应怎样充分利用Delphi的优势来更加快速地进行程序设计程序呢?
一、充分利用代码完全共享(句槟):
我们这样做的目的不仅仅是为了“偷懒”,这也是优化程序代码的一种方法。当然,首先要考虑的是能不能共享(这很简单,看看是否包含在该事件的下拉集合中),其次是要注意的是共享后有没有“麻烦”,因为正确是第一步,在保证正确的情况下才有必要去追求优化!
比如:我们在用户删除数据前给出一确认消息:
procedure TForm1.Table1BeforeDelete(DataSet: TDataSet);
begin
//确认删除记录
if MessageBox(handle,''''确实要删除当前记录吗?'''',''''确认'''',MB_IconQuestion MB_YesNo)=IDNO then
Abort;
end;
那么,你只要愿意让用户在删除数据记录前进行确认均可在TDataSet.BeforeDelete事件(Table2的BeforeDelete,Table3的BeforeDelete……)中完全共享这段代码。好运不会天天有,在有的时候就不这么直接、简单了……
“As”这个单词不仅仅在英语中用处极大,在Delphi中亦然!当我们想为数个“同类”组件共享代码时,即可发挥她的巨大作用:我们只需为其中一个组件编写代码即可。
比如:想让一组文本编辑框在得到输入焦点时背景颜色变为茶色,失去焦点是恢复系统颜色,我们可以如此共享代码(让每个文本编辑框的事件公用以下代码):
procedure TForm1.Edit1Enter(Sender: TObject);
begin
(Sender as TEdit).color:=ClTeal; //得到输入焦点
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
(Sender as TEdit).color:=ClWindow; //失去输入焦点
end;
上面的例子似乎有点太特殊了,万一我只对其中某些组件特别关照怎么办?仍以上面的为例,比如其中有两个文本输入框需要输入数字,为引用户注意,得到焦点时颜色变为兰色,但我仍然然不想为每个组件分别写代码。
要解决这个问题可利用组件的Tag属性,先为要特别处理的组件分配非零、不等的Tag(必须说明的Delphi不会检查Tag值是否相等,设计时自己掌握);然后如下编写代码,就可依然实现共享:
procedure TForm1.Edit1Enter(Sender: TObject);
begin
case (Sender as TEdit).Tag of
10,20:(Sender as TEdit).Color:=clBlue //输入数字的文本框
else
(Sender as TEdit).Color:=clTeal; //其余文本框
end;
end;
(以下言论均假设在Delphi的默认条件之下)
1、利用Self关键字:
也许有人以为我搞错了!其实,这里要向大家介绍的是笔者(因记性太差)“惯犯”的又一“伎俩”。在有的时候,我们可能记不准组件的确切名字(Name)了,这时你要是再返回窗体表格去确认一遍的话(大多数的朋友应该是这样的)未免有点太对不起时间了,此时你要是利用Self就特别省力,因为Self在Delphi中是显式地引用该组件所在的窗体,因此,我们可以输入Self后加一逗点以此激活Delphi的Code Completion,此时系统会立即为你显示一包含该窗体所有组件及窗体本身属性的下拉列表,你从中选择所需组件即可。这样,就避免了来回切换窗体表格的这一工作量。
2、利用代码补缺(Code Completion):
我们现在再也没有必要让自己去记忆太多的参数细节了,因为有了Delphi的代码补缺功能。在具体解释之前,还要罗嗦一点,Delphi的Code Completion默认的快捷键会与我们已用的某些快捷键冲突(如Ctrl Space就与我们打开、关闭汉字输入法的快捷键冲突),因此请先解决这个问题。
当然,Code Completion一般会自动激活,但是不要以为就万事大吉了,本人认为Delphi的此项技术应向VB学习,此言怎讲?举例来说吧:当你输入StrToint(edit1.后,Delphi不会自动显示edit1的属性,此时你就将用Ctrl Space来激活Code Completion,特别是嵌套很深的时候,Delphi似乎也糊涂了。
3、利用代码参数(Code Parameters):
激活快捷键是Ctrl Shift Space。这项功能也是Delphi自动实现的,正如上述所言,当我们来回切或是光标移走时,这项功能也就随之消失了,当我们需要确认该函数的具体参数时即可以此快捷键打开。
4、利用代码模板(Code Templates):
这项技术再次体现了Inprise公司Delphi开发组的工程师们高超的技术及处处为用户着想的高尚品德!(只是不希望再听到又有人被微软挖走的消息)
激活快捷键是Ctrl J。此项功能实现机制与代码补缺的差不多,只是她不是自动的,当然最另令人激动的一面是用户可以定义自己的模板。比如笔者定义的一个模板:快捷-〉“msg”;代码-〉“MessageboxMessageBox(
handle,''''|'''','''''''',MB_Icon... MB_...);”,只要一输入msg然后按Ctrl J整个代码“脱颖而出”,并把光标帮我移到我该补充输入的地方,简直爽呆了!
注意:如果你为自己定义了很多可爱的模板舍不得丢掉的话,不妨把...Delphi4\Bin目录下的Delphi32.dci文件备份,重新安装Delphi后以此文件覆盖即可。
这个话题本不应该写在这里,但还是忍不住……
1、能利用对象观察器直接设置且不会影响程序正常运行的就没有必要去写代码:
由于这个话题涉及面太广,此处仅举一例说明:比如要在Delphi4中实现在状态栏上的自动提示,又没有太“苛
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:DELPHI中使用API函数详解
下一篇:Delphi:易混淆的概念
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash