首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
14.4.4 字段对象的访问
字段对象在应用程序中有动态生成的,也有通过字段编辑器Fields Editor 创建的永久性的,它们虽然在设计和运行阶段都是不可见,但是它们跟其他的对象一样都拥有自己的属性、方法和事件,因此我们在应用程序中是可以对字段对象进行控制和访问的。
因为动态字段对象是没有自己的名字的,永久性的字段对象有自己的名字,所以对这两种字段对象的访问方法是不一样的。
14.4.4.1 动态字段对象的访问
动态字段对象存在于数据集部件TTable和TQuery部件中,它们是随着磁盘上的数据库文件的打开而动态生成的,并且每一个字段对象对应于数据库表中的一个字段(即记录的一列),TTable或TQrery部件中所有的字段对象存在属性Fields列表中,Fields列表中的字段对象就像数组元素一样拥有自己的索引号,我们可以用这个索引号来访问字段对象。索引号在程序运行时赋值,从0开始,表中最左边的一列(第一个字段)的索引号为0,紧接着右边一个为1,以此类推。访问这些属性的方法和处理其他对象一样。
Table1.Fields[0].DisplayLabel:='标识符'
上述代码让我们访问与Table1相连的数据库表中的第一个字段,并为该字段指定一个标题,这是通过设置它的DisplayLabel属性值为一个特定的标识符来实现的。
通过索引号来访问Fields属性中的字段在使用For循环对列号进行迭代时会非常有用。但是在大多数简单应用程序中,通过列名(字段名)来访问字段会更加明白而且易读。在TTable部件中,提供了一个名为FieldByName的方法以便让我们通过列名访问字段对象。
Table1.FieldByName('CustNo').DisplayLabel:='标识符'
通过这种途径同样可以访问CUSTOMER.DB表中的CustNo字段,并为该字段指定一个标题信息。
现在我们可以建立一个允许用户通过字段名和索引号来访问Customer.DB 表中的字段对象的简单窗体。
字段对象的访问
在该应用窗体的运行过程中,我们通过程序来访问其中的字段对象并设置有关的属性,这一控制过程我们放在窗体的OnCreate事件处理过程中。
例14.1 在窗体的Oncreate事件处理过程中访问字段对象。
procedure TForm1.FormCreate(Sender:TObject);
Begin
with Table1 Do
begin
{通过索引号访问字段对象}
Field[0].DisplayLabel:='客户编号';
{通过字段名访问字段对象}
FieldByName('Company').DisplayLabel:='公司名称';
FieldByName('Phone').DisplayLabel:='电话号码';
FieldByName('LastInvoiceDate').DisplayLabel:='购买日期';
end;
end;
在程序运行过程中访问字段对象
14.4.4.2 永久性字段对象的访问
通过字段编辑器Fields Editor 建立的永久性字段对象的访问相对于动态字段对象的访问要简单得多,我们在程序中可以直接通过字段对象的名称(即Name属性)进行访问。
例如:
Table1CustNo.DisplayLabel:='客户编号';
Table1CustNo.DisplayWidth:=12;
14.4.4.3 字段对象的读取和赋值
通过字段对象的Value属性,我们可以读取字段对象的值,例如在如图14.13所示的窗体中,单击Read按钮便可以将Customer.DB表中当前记录的COMPANY字段的值读取到编辑框Edit1中。
读取字段对象的字段值
窗体中各部件的属性如表14.7所示
表14.7 各部件的属性
━━━━━━━━━━━━━━━━━━━━━━━━
部件的属性 属 性 值
────────────────────────
Button1.Caption &Read
Button1.Name Button1
Label1.Caption 字段值
Label1.Name Label1
Edit1.Text
Edit1.Name Edit1
━━━━━━━━━━━━━━━━━━━━━━━━
其它部件的的属性跟前面的例子一样。
为Read按钮编辑的OnClick事件处理过程如下:
procedure Form1.TButton1Click(Sender:TObject);
begin
Edit1.Text:=Table1Company.Value;
end;
在这里要注意的是:从字段对象中读取字段值时必须要将它赋给与之数据类型相匹配的变量,否则会出错。在上面的程序代码中,Table1Company的类型是TStringField 即是字符串类型的字段,而编辑框Edit1的属性Text的类型也是字符串型的,因而它们是匹配的。如果类型不匹配,则要经过一定的转换才能够相互赋值。如:
Edit1.Text:=Table1CustNo.Value
这条代码在运行过程中将会出错,因为TablelcustNo是TFloatField 类型即是数值型数据,要在编辑框Edit1中显示数值型数据要经过下列转换:
Edit1.text:=Table1CustNo.AsString;
AsString是字段对象的属性,通过字段对象的AsString属性可以读取字段值并且将它转换成字符串类型。字段对象的字段值可以转换成以下几种类型的数据:
AsString: 将字段值转换成字符串数据
AsBoolean: 将字段值转换成布尔型数据
AsDateTime: 将字段值转换成日期时间数据
AsFloat: 将字段值转换成数值型数据
AsInteger: 将字段值转换成整数型数据
下面的程序代码是从字段对象中读取字段值并将它显示在编辑框Edit1中,或者将字段值赋给相匹配的变量。
CustNoDouble: Double;
CustNoInt: Integer;
CustNoString: String;
{在Edit1中显示字段值}
Edit1.Text:=Table1Company;{类型相匹配,不需要转换}
Edit1.Text:=Table1CustNo.AsString;{类型不匹配,需要转换}
{将字段值赋给变量}
CustNoDouble:=Table1CustNo.Value;{类型相匹配,不需要转换}
CustNoInt:=Table1CustNo.AsInteger;{类型不匹配,需要转换}
CustNoString:=Table1CustNo.AsString;{类型不匹配,需要转换}
相关推荐:2010年9月计算机等级考试试题及答案解析专题北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |