DELPHI编程技巧集锦.docx

上传人:b****3 文档编号:4865584 上传时间:2022-12-11 格式:DOCX 页数:41 大小:44.15KB
下载 相关 举报
DELPHI编程技巧集锦.docx_第1页
第1页 / 共41页
DELPHI编程技巧集锦.docx_第2页
第2页 / 共41页
DELPHI编程技巧集锦.docx_第3页
第3页 / 共41页
DELPHI编程技巧集锦.docx_第4页
第4页 / 共41页
DELPHI编程技巧集锦.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

DELPHI编程技巧集锦.docx

《DELPHI编程技巧集锦.docx》由会员分享,可在线阅读,更多相关《DELPHI编程技巧集锦.docx(41页珍藏版)》请在冰豆网上搜索。

DELPHI编程技巧集锦.docx

DELPHI编程技巧集锦

DELPHI编程技巧集锦

DELPHI编程技巧集锦

(1)

美国著名的《Delphi开发者杂志(DelphiDeveloper'sJournal)》是世界上众多Delphi程序员必读的专业杂志,在国内我们很少有机会读到这份优秀的专业刊物,但是我们可以在Inprise公司()的网页上看到该杂志刊登的一些优秀文章。

同时,还可以通过电子邮件订阅该杂志免费提供的Delphi使用技巧,订阅网址为4为例进行介绍,请使用其他版本的读者根据实际情况灵活运用。

一、Delphi集成环境与代码调试

A修改Delphi的系统信息

默认的Delphi消息、警告和例外描述都是英文的,将这些内容翻译成另一种语言或修改它们使其适合你的需要的最简单方法是编辑资源文件并改变相应的字符串,这些文件位于BIN目录。

主要资源文件有:

SysUtils单元的信息(文件没有找到、转换错误信息等)在sysutils.res中,数据库错误信息在dbconsts.res中,VCL信息在consts.res中。

注意一些字符串使用格式字符,如%s或%d,来产生最终的字符串,在这种情况下,应将这些字符保留在适当的位置。

B如何清除无用代码

Delphi提供了自动清除源代码中无用代码的强大功能,一般来说,当你保存文件时,Delphi自动将源代码中空的类方法删除,保证了源代码的清洁。

在没有编译和保存文件的前提下,也可以清除无用代码,方法是:

在Delphi3/4中单击“File”*“SaveAs...”菜单命令(在Delphi1/2中单击“File”*“SaveFileAs...”菜单命令),打开“SaveAs...”对话窗口,单击“取消”按钮即可。

C在Delphi4集成环境中不使用浮动功能

你无疑知道Delphi4集成环境支持大多数窗口的浮动功能。

但是,有时你不想让一个窗口具有浮动功能。

浮动窗口在需要时,十分有用,但在不需要时,也十分恼人。

有两种方法可以改变一个窗口的浮动属性。

第一种方法是:

每个可浮动窗口具有一个本地菜单项目---Dockable,如果你不希望一个特定的窗口具有浮动功能,简单地用鼠标右键单击窗口,选空Dockable菜单项目。

这个窗口的浮动功能就关闭了,直到你再选中Dockable项目为止。

这一技术可以防止特定的窗口可停靠。

但有时,你仅仅希望暂时关闭浮动功能,这时,只需要按下键,再拖动窗口。

D在工具菜单中添加项目

在Delphi集成环境中按F1键可以打开多数Delphi帮助标题,这种方法可以快速打开相关标题的帮助窗口。

但是这种快速方法对第3方工具和常问问题(FAQs)是不可用的,Delphi提供了一个变通的方法,使在集成环境下快速打开这些工具成为可能。

在工具菜单添加用户项目的方法是:

单击“Tools”*“ConfigureTools”命令,打开一个包含所有可用工具列表的对话窗口,单击“Add”按钮,打开“ToolProperties”对话窗口,分别设置4个编辑框,然后单击“Ok”按钮,再单击“Close”按钮,完成设置。

E设置条件断点

一般来说,大家都会使用断点来调试程序,但是如何使用条件断点来调试程序呢?

条件断点,顾名思义,就是指需要满足一定条件时的断点。

这种断点在调试很长的For或While循环时十分有用,当你只希望看一看一个特定循环的执行情况而非所有循环时,就需要在循环中设定一个条件断点,当设定的条件满足时,Delphi停止应用程序的执行。

设置条件断点的方法是:

按常规的方法建立断点,单击“View”*“DebugWindows”*“Breakpoints”命令,弹出一个断点列表窗口,用鼠标右键单击欲设置为条件断点的断点,在快捷菜单中单击“Properties”命令,打开一个断点编辑窗口,在这个窗口的条件域中输入一个逻辑表达式即可。

在调试程序时,Delphi判断这个逻辑表达式,当逻辑表达式为真时,就中断程序运行,返回代码窗口。

F不要让集成调试器打断调试过程

在调试程序时,Delphi的集成调试器监视一切运行时错误。

当调试器发现一个运行时错误时,Delphi中断应用程序并返回到设计状态,并显示一个错误信息窗口。

当关闭错误信息窗口后,需要按重新开始启动程序,或者按继续运行程序。

无疑,Delphi集成调试器是十分有用的,但有时也让人烦恼。

能否暂时关闭集成调试器呢?

可以。

使用下面的方法可防止集成调试器中断应用程序:

1单击“Tools”*“EnvironmentOptions...”菜单命令;

2单击“Preferences”对话页标签;

3选空“Integrateddebuggingoption”复选框;

4单击“Ok”完成操作。

这样当你在集成环境下调试应用程序时,Delphi的集成调试器探测到运行时错误时,就不再切换到设计状态并显示错误信息了。

G调试Delphi3/4集成环境的插件

在Delphi1中,要调试集成环境的插件/专家是十分困难的。

Delphi3/4提供了调试DLL的能力,从而简化了这项工作。

第一步,保证插件/专家没有包括在Windows注册表的插件/专家列表中,然后,启动Delphi3/4并装载需要调试的专家DLL,修改注册表,使Delphi3/4能够调用这个DLL;

第二步,单击“Run”*“Parameters”菜单命令,打开“RunParameters”对话窗口,单击“Local”对话页上的“HostApplication”编辑框右边的“Browse”按钮,查找“Delphi32.exe”程序的位置(本例为C:

\ProgramFiles\Borland\Delphi4\Bin\delphi32.exe);

第三步,运行待调试的DLL,将启动Delphi的第二个实例,并装载要调试的DLL,允许对其进行调试。

二、窗体设计的相关技巧

A透明象素点

当将一个image图象,一般为BMP文件,放到一个TBitBtn上时,图片左下角的一个象素点决定图片中的哪种颜色为透明色。

图片上任何具有这种颜色的象素点,在按钮上都是透明的。

假如不希望图片上的任何象素点是透明的,就需要将图片左下角的这个象素点的颜色设置为不同于图片上任何象素点的颜色。

B自动调整窗体的分辨率

创建应用程序时,总是依监视器的分辨率进行的,其缺点是:

假如在较高分辨率下设计应用程序,它可能大于用户的有效屏幕大小,在用户使用程序时,就不能显示出全部窗体内容,给用户带来不便。

一种简单的解决办法是:

在程序运行时,让Delphi自动添加滚动条来解决这个问题。

但是,使用Delphi的自动调整比例过程将产生更加专业的结果。

在运行时,Delphi获得系统的屏幕分辨率,并将结果保存在应用程序的Screen对象的PixelsPerInch属性中,然后,使用这个属性的值将窗体调整到当前分辨率。

记住,为了有效地使用这项技术,需要设置窗体的Scaled属性为真,并且只用TrueType字体,如果开发程序时,使用了Windows的小字体,应将窗体的AutoScroll属性设置为假(FALSE)。

C为控制设置一种自定义颜色

窗体和各种控制都具有一个Color属性,当你选择它们的Color属性时,可以在列表框中选择一种Windows系统默认的各种颜色,也可以建立一种自定义颜色,使它们显得与众不同。

为窗体或控制设定自定义颜色的步骤如下:

1双击组件的Color属性,弹出颜色对话窗口;

2选择一种最接近你想要的基色;

3单击“DefineCustomColors>>”按钮,颜色对话窗口将扩展,显示出一个色谱区域;

4使用十字光标在这个色谱区域选择你想要的颜色,然后单击“AddtoCustomColors”按钮;这样你选定的特定颜色就被添加到颜色对话窗口中了;

5单击“Ok”按钮,就将刚定义的颜色应用到选定的控件了。

D缩小步长

大多数程序员在设计窗体时喜爱“(靠到格线)Snaptogrid”功能,可以节省安置组件的时间,但是,有时你还需要微调其位置和大小。

其一:

将组件在窗体上一次移动一个象素点。

首先,选中你想移动的组件,然后,按下键不放,按光标键,选中的控制将一次移动一个象素点,方向与光标键所指方向相同。

其二:

每次按一个象素点调整控制的大小。

选中控制,按下键不放,按光标键,根据光标键所指方向不同,选中的控制每次放大或缩小一个象素点。

E控制滚动条的有效方法

TForm的HorzScrollBar和VertScrollBar属性使用Tracking子属性来管理窗体的显示,Tracking属性是一个布尔型属性。

若此属性设置为真,窗体随用户拖动滚动条而移动;若此属性设置为假,窗体不随用户拖动滚动块而移动,只有用户释放滚动块时才移动。

这种差别对查看列表和图象的用户十分重要。

如果要平滑地显示列表和图象,将Tracking属性设置为真,但当图象或列表信息特别复杂时,窗口的滚动特别地缓慢。

如果要快速显示列表和图象信息,将Tracking属性设置为假,这样窗口的滚动就会加快,但是由于不能看到实际位置,所以使用时难以掌握。

除了TForm以外,TScrollBox组件也使用Tracking属性来管理其显示内容。

F选择合适的组合框

Delphi提供了5类组合框,它们具有相同的特性,但是也有不同的特点。

了解其间的差别,可帮助程序员根据需要选择合适的组合框类型。

所有的组合框都是一个列表框和编辑框的组合,用户可以在列表框中选择或在编辑框中直接输入值。

当用户从列表框中选择时,这个条目将显示在编辑框中。

5类组合框的不同特性决定了它们的显示和与用户交互的方式。

下表列出了5种类型组合框的的独有特征。

表1格式描述

格式

说明

Simple

这种格式就是列表框上显示一个编辑框,用户可以从列表框中选取条目,也可以直接在编辑框中输入文本

Drop-down

除了列表框开始不显示外,其他特性均类似于simple格式。

在编辑框的左边有一个下拉按钮,单击可以打开列表框,从中选取条目;也可在编辑框中直接输入项目。

Drop-downlist

这是组合框中限制条件最多的一种,显示格式类似于drop-down,开始时列表框不显示。

用户单击下拉按钮打开列表框并从中选取条目,但是不能在编辑框中直接输入文本。

OwnerDrawFixed

这种组合框类似于Simple类,不同的是其列表框中的条目高度是根据用户在ItemHeight定义的值而设置的。

OwnerDrawVariable

这种组合框类似于OwnerDrawFixed类,特点是列表条目的高度是可变的。

当窗体上有足够的空间和列表很短时,使用Simple格式的组合框较为合适。

否则,使用Drop-down格式的组合框。

当想让用户只能从预定义项目中选取条目时,用Drop-downlist格式的组合框。

需要可变高度列表项时,使用后两种。

G使非可视组件易于辨认

非可视组件没有标题属性,一个窗体中多个同类非可视组件时,由于它们看起来一模一样,故难以辨认。

DELPHI提供了一种变通的方法,就是将非可视组件的名称放置在组件图标之下,使它们易于辨认。

设置方法如下:

1单击“Tools”*“EnvironmentOption”,弹出一个对话窗口;

2单击“Preferences”标签,切换到Preferences对话页;

3选中“Showcomponentcaptions”复选框;

4单击“Ok”完成。

这时,在当前的设计窗体上,就可以看到每个非可视组件下显示出一个标签。

这个选项设置之后,对所有窗体都是有效的。

H标签的加速键

对含有Caption属性的组件,添加快捷键是比较容易的,只需在Caption属性中特定字符前加上“&”符号即可。

那么,怎样给没有Caption属性的控制添加快捷键呢?

现以给一个TMemo控制添加快捷键为例说明如下:

在窗体上放置一个TMemo控制,再在其旁边放置一个TLabel控制,将其Caption属性设置为“&Memo1”,将TLabel的FocusControl属性设置为“Memo1”。

编译并运行这个程序,按快捷键,就可以快速存取Memo1控制的内容。

这项技术不需要任何代码,可以应用到所有没有Caption属性的控件上。

I选择组件的父组件和多个组件

在Delphi集成环境中,在设计窗体时,如果父组件是不可见的,要选择父组件就比较困难。

其实有一个简单的方法:

选择不可见组件的一个子组件,按键,就可以选中其父组件。

当窗体上有多个组件时,可以通过按下鼠标左键拖动鼠标,将虚线矩形框包围要选择的组件,就可以方便地选择它们。

但是,如果想选择放置在一个面板类组件(如TPanel)上的一组组件时,单击并拖动将移动这组组件下的父组件,达不到预期的效果。

为了避免这种情况的发生,需要按下键,然后再执行上述操作。

另外,按下键,单击一个组件,可以选择或取消选择一个组件。

这对需要选择不同面板组件上的子组件时十分有用。

J移动组件或调整其大小

在窗体上移动组件或调整其大小时,有时希望一次一个象素点地进行。

采用ObjectInspector来修改组件的left,top,width和height属性可以做到这一点。

但是还有一种更为简单的方法,就是使用键加上箭头键。

组合键在箭头指向的方向上调整组件的大小;按组合键在箭头指向的方向上移动组件。

这两种组合键对选定的多个组件同时有效。

K在TNotebook组件的所有页面上显示组件

若希望在TNotebook或TPageControl组件的所有页面上显示某些组件(例如浏览数据库的列表框)时,不需要在在每个页面上重复设置这些组件,只需要首先建立它们,然后再添加TNotebook或TPageControl控件,调整它们的大小和位置,用鼠标右键单击TNotebook或TPageControl组件,单击弹出菜单中的“SendToBack”属性,这时最先添加的控件就显示在TNotebook或TPageControl控件之上,按通常的方法添加其他组件到TNotebook或TPageControl组件即可。

此方法只对控件有效,所以TDBText需用TDBEdit代替,并设置其为只读,边界属性设置为空,Ctrl3D属性设置为假。

同理,需要用TPanel组件代替TLabel组件。

另一种更为有效的方法是编写一段代码,来动态改变组件的位置,这种方法对所有的组件均有效。

以TPageControl为例,在其OnChange事件处理程序中插入如下代码:

procedureTForm1.PageControl1Change(Sender:

TObject);

begin

Panel1.Parent:

=PageControl1.ActivePage;

//othercodefollows

end;

实际使用时,用自己的组件代替Panel1。

记住:

应当将组件放置在程序运行时,打开对话框时首先显示的对话页上,以避免在窗体的OnCreate事件处理程序中编写代码。

L取消拖动操作

在设计窗体时,如果在移动一个组件的位置时,发现选错了组件,这时该怎么办呢?

无疑,你想取消这一步的拖动操作,其实很简单,在没有释放鼠标键之前,按键,这个组件就会返回到原来的位置。

M为Y2K格式化tDateTimePickers的日期显示

在Delphi中使用TDateTimePicker.DateFormat来指明日期格式,DateFormat是TDTDateFormat类型属性,取值为dfShort或dfLong。

若取dfShort,日期格式类似于是“3/21/97”;若取dfLong,日期格式类似于“Friday,March21,1997”。

为了兼容Y2K格式,需将日期格式设置为YYYY-MM-DD,根据上面的解释,tDateTimePicker组件在设置为短日期格式时就不敷应用了。

但是,如果你在控制面板中设置了短格日期式(使用区域设置),tDateTimePicker将使用Windows的设置,所以它还是可以使用的。

DELPHI编程技巧集锦

(2)

三、代码设计的相关技巧

A使用特殊字符

应用程序有时需要用到键盘上没有的字符,例如,版权符号(©)、英镑符(£)和日圆符(¥)等。

为了输入这些字符,需要使用Windows字模映射程序。

打开字模映射程序,从“字体”列表框中选中合适的字体,在下面的列表框选中一个字符,在窗口的右下角将显示出这个字符的ASCII码值。

例如英镑符的ASCII码为0163,在键盘上按下键的同时按下0163,就可以输入英镑符。

也可以使用字模映射程序的选择和复制按钮将选定字符复制到Windows的剪贴板上,然后再使用“粘贴”命令或按键盘命令将字符粘贴到目标程序代码中。

B在代码中设置位置标记

Delphi代码编辑器允许在源代码中放置一些位置标记,就向老式的WordStar所具有的那种。

使用位置标记的目的是快速地在文档不同位置之间进行切换。

比如在创建一个类函数时,希望看一下它的声明部分,位置标记就派上用场了。

在代码编辑器中设定位置标记的快捷键为:

+<1-9之间的任意数字>,移动到已有位置标记的快捷键为:

+<1-9之间的任意数字>。

在默认状态下,Delphi并不保存用户在代码中设定的位置标记,为了让Delphi将设定的位置标记保存到文件中,一便下次利用,需要在“EnvironmentOptions”对话窗口的“Preferences”对话页选中“Autosave”复选项,这样Delphi就将位置标记信息保存到项目的DSK文件中。

C使用键盘快捷键快速进行代码块缩进

在编辑程序源代码时,不同代码块之间保持不同的缩进距离,可以使代码易于阅读。

当程序结构调整之后,需要调整代码的缩进量,通常我们使用上下光标键在不同代码行之间进行切换,用<空格>、键来增加或减少缩进空间。

使用过TurboPascal的老用户可能还记得它的集成编辑器提供了一组快捷键来快速切换代码块的缩进量,使用十分方便。

其实,Delphi集成编辑器也提供了两个组合键来快速增加或减少多行代码的缩进量。

首先选择待改变缩进量的代码块,按组合键来扩展代码块的缩进量,按组合键来缩小代码块的缩进量。

D在代码编辑窗口中选择一个矩形区域

大家知道在MicrosoftWord97中可以选择一个矩形区域,在Delphi的集成编辑器也有类似功能。

为了选择一个矩形区域,按下键不放,然后用鼠标和键盘选择文本。

E跳到VCL源代码去

通过下面的方法,可以转跳到VCL库例程的源代码:

3按下键;

3将鼠标光标移到想看其源码的类型声明的名字上;

3单击之即可调出VCL源程序代码进行查看。

F在集成环境中记录击键并回放

在使用Delphi编写程序时,由于需要多次输入同一个变量名称或一段固定的代码,你或许想过将这段代码的击键记录下来,在需要时回放它们,以实现快速编码,减少无效劳动,就象在DOS时代使用F3键回放刚刚输入的一行命令一样。

Delphi集成编辑器同样提供这项功能:

开始录制击键,然后键入你希望录制的击键,再按停止录制。

回放刚刚录制的击键。

注意:

这种功能仅仅在默认的编辑器键盘模式下有效。

为了查找你使用了那种编辑器键盘模式,单击“Tools”*“EnvironmentOptions”菜单项,单击“Editor”标签,就可以在编辑器设置组合框中看到当前使用的编辑器键盘模式了。

G代码模板

Delphi的代码模板(CodeTemplate)可以减少重复输入。

在Delphi编辑器中,按键打开模板选择列表框;或者键入一个模板的名称,然后按来扩展模板。

选择“Tools”*“EnvironmentOptions”菜单命令,单击“CodeInsight”标签,可以添加自己的代码模板。

用户可以输入任何代码,不仅仅是数组、循环等。

模板在下列情况下十分有用:

为过程、函数和方法所写的标准初始化代码、注释块或其他用途。

H使用代码完成功能

Delphi3/4中一项易被忽视的功能是代码完成特征,该项功能弹出一个列表框,列出所有可能的赋值。

下面的例子演示了这项功能。

开始一个新的项目,双击窗体,切换到代码窗口,编写窗体的OnCreate事件处理程序,如下:

procedureTForm1.FormCreate(Sender:

TObject);

var

temp:

string;

temp2:

integer;

begin

end;

这时,在过程体中输入“temp:

=”,按键,稍侯,就可以看到一个含有一些变量、方法和对象的列表,以及潜在的有效赋值。

一些选择项后带有省略号,表明这些对象或记录含有兼容的方法或字段可以作为赋值。

四、数据库程序设计技巧

A充分利用数据库窗体专家(DatabaseFormExpert)

数据库窗体专家(DatabaseFormExpert),在Delphi3中称为向导,对所有版本的Delphi都是有效的。

窗体专家的用途是帮助用户快速地创建数据库应用程序。

但是,不足的是它产生的窗体存在控制和字段位置、大小不适中的问题。

但是,其优点还是很显然的。

很明显,程序员需要和客户一起来设计窗体,使其更加美观实用。

数据库窗体专家可以建立数据存取控件并完成他们的基本连接属性。

虽然位置和大小不适中,它可以建立大多数数据输入字段和其标签,所以充分利用数据库窗体专家,可以节省设计窗体原型的时间。

B将数据库转换为CSV格式

如果想将数据库表格转换为以逗号分割的文本文件(CSV格式),可以使用如下的过程代码:

procedureBackupTableToCSV(tableName:

TTable);

var

i,j:

integer;(*i-field,j-record*)

s:

string;(*Recordstring*)

theStringList:

TStringList;(*tempstorage*)

begin

s:

='';

theStringList:

=TStringList.Create;

withtableNamedobegin

try

Active:

=True;

except

showmessage('不能激活数据库:

'+Name);

end;

forj:

=0to(RecordCount-1)dobegin

s:

='';

fori:

=1to(FieldCount-1)dobegin

(*addnextfieldw/commadelimiter*)

s:

=s+(Fields[i].AsString)+',';

end;(*ifo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1