摘要载入中…    请稍等…












内容载入中…    请稍等…

如长时间看不到内容,请关闭浏览器,重新打开此页!

芯友首页 应用软件 编程开发 网络硬件 资源下载 动漫音乐 精美图库 芯友论坛 视频教程 电脑技术QQ群:72845454
 ★★photoshop学友-史上最强播放器★★
 位置:编程开发>Deiphi>Deiphi实例教程
◎→ 本类最新
在DELPHI中用线程排序
在Delphi中使用Queued Component
作非常规程序菜单掌握delphi
执行一个外部程序并等待它的完成
在应用程序中跟踪MOUSE的坐标
五子棋源代码
显示密码的原理
◎→相关资源
C语言入门视频教程
C#编程WinForm入门视频
Asp.net入门视频教程下载
VC++编程视频教程下载
VB窗体文章
HTML入门教程
Deiphi实例教程
Deiphi窗体文章
Deiphi数据库编程
Deiphi网络编程
Deiphi图形图象文章
Deiphi系统文件
◎→ 热门资源
监视打印机部分线程内容
关于MP3中的ID3V2格式探讨及我写
Delphi中ListBox控件的六种特效
Delphi中ListBox控件的六种特效(
Delphi中ListBox控件的六种特效(
第三方控件使用方法
关于SMTP和POP3使用及关于客户-服

从 实 例 看 Delphi 4 中 的 动 态


日期:2008-10-20 22:08:43    来源:
   
 ·photoshop6.0制作毛笔实例(第二版)-7 ·基于Delphi的“八皇后”问题动态实现(2)

从 实 例 看 Delphi 4 中 的 动 态
   作为Windows下可视化RAD工具的杰出代表,Delphi 的最新版本——BorlandDelphi4在Delphi3的基础上,又增加了许多新功能、新特性乃至新语法、新单元——如动态数组、方法重载、默认参数等,从而为编程人员提供了更强劲、更方便的开发工具和环境。其中,动态数组的引入更是一个让人盼望已久的变化。

一、动态数组(DynamicArrays)简介:

在传统Pascal语言或Delphi先前版本所使用的Object Pascal语言中,数组指的是一组类型相同、带下标的又序的变量,是预先分配好的一块固定大小的存储单元,其语法如下:

type

$#@60;数组类型名$#@62;=array[下标1..下标2]of$#@60;基类型$#@62;;

var

$#@60;数组变量名$#@62;:$#@60;数组类型名$#@62;;

或

var

$#@60;数组变量名$#@62;:array[下标1..下标2]of$#@60;基类型$#@62;

由传统数组的定义可知:传统数组的范围大小取决于在使用它之前即已定义下的下标1和下标2这两个值。数组变量的下标决不能超出这个范围。因此,传统数组是一种静态的数据结构,它无法在程序运行中动态地改变其容纳能力,应用范围无疑也受到了很大的局限性。

Borland公司(现在的Inprise公司)对这种“静态” 的数组的改造工作一直在进行着,先后引入了String、PChar两个字符串大类来解决字符数组的问题——消灭了程序中笨拙的array[N1..N2]ofchar和packedarray[N1..N2]of char语句。这一次,终于在BorlandDelphi4中将数组正式划分为静态数组(StaticArrays)和动态数组(DynamicArrays)两大类,以求通过后者来解决传统数组的痼疾。

动态数组的语法很简单:

var

$#@60;数组变量名$#@62;:=arrayof$#@60;基类型$#@62;

	.

	.

	.

下面就以一个实际例子来说明一下动态数组的应用和使用方法。

二、使用动态数组实现“模糊查询”实例

在一些数据库中,往往需要根据标题或文件名中的某个关键字(或词)来实现“模糊查询”,如有一个文件资料库,现要求查出所有文件名中包含“简报”两个字的文件,那么用FindKey()、GotoKey()等“精确制导”的方式自然不行,而Set ge 和Filter语句在关键字(或词)出现在字符串首部时倒能一用,对于出现在中间或末尾时的情况却无能为力。显然,单纯依靠检索函数或过程来一次性完成这类查询工作是不行的。

通过对问题的观察可知,“模糊查询”所操作的对象是字符串(String或PChar),给出的关键字(或词)是可能出现在各字符串中的子串,要确定在字符串中是否包含给出的子串,Delphi提供了两个函数:Pos(sub_s:String,s:String) 适用于String类型和StrPos(sub_p:PChar,p:PChar)——适用于PChar类型,若在目标串中含有给出的子串,则返回值为子串所在位置,否则为0。因此,要实现记录的“模糊查询”,只需将关键字(或词)作为子串,将数据库中对应的字段内容作为主串,然后做Pos或StrPos 运算即可。

但比较后的结果放在哪呢?由于数据库的记录个数通常是变化着的,而每次查询的结果又未必相同,因此,势必要求以一个动态的数据结构来存储查询结果。若使用指针型记录,则不但存储时较麻烦,而且查看检索结果也复杂得很。引入动态数组后就显得轻松多了,只需对数据库进行一次遍历,就实现各种要求了。

具体操作说明如下:

1、操作对象:

	......

2、查询要求:输入一个关键字(或词),要求在“AREA” 字段中查找,将包含有该关键字(或词)的所在记录找出并返回结果(记录数),通过导航条来显示命中记录。

3、Form及主要构件属性的设定:

	......

4、编写各事件:

	......

5、运行结果:

在编辑框中输入任意字符或字符串,然后单击“开始查找”按钮,程序查找完毕后将在编辑框下显示命中记录的条数,通过单击“开始查找”按钮下的导航条可显示具体的命中记录。[见图示]例)输入“美洲”,单击“开始查找”。显示查找结果为“符合要求的有3条记录”。单击导航条四个按钮,可进行命中记录向上、向下的逐条显示,并会自动提示是否已显示完毕。

本例所介绍的方法亦适用于其他类型和语言的数据库。

总之,Delphi4中的动态数组在处理一些变化的、类型较简单的数据时,是指针类型的良好代替者。若使用得当,将会给编程带来格外的方便。

 [1]

photoshop6.0制作毛笔实例(第二版)-6

基于Delphi的“八皇后”问题动态实现(1)

--->RLPack V1.18 Basic Edition┊压缩可执行文件和动态链接库等┊汉化绿色特别版
--->Ulead COOL 3D(制作三维动态效果) V3.0 绿色免安装特别版
--->vf实例教程
--->《PhotoShop 精彩制作100例》实例文件
--->Html实例教程
Tags:  实例 动态

芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们