Delphi Record,两种声明方式


本文整理自网络,侵删。

 
记录是Delphi(Pascal)的独特功能之一,在对我们的应用程序进行编码时非常有用。

在Delphi中,record以程序员给定的名称收集结构中不同类型的一组数据。

引用记录结构的方法是:

type Name = {packed} Record
  Fields Declarations ...
end;
 
...
 
record.field
 
...
record关键字具有可选的压缩声明,该声明告诉Delphi最小化分配给该记录的内存存储。

当数据未与适当的2、4或8字节边界对齐时,内存存储空间的减少会影响性能。

记录类型,语句
此结构有两种类型的字段或字段:


带有Case的变量字段声明
变调夹或田野的宣言
这些是标准的Delphi声明,例如:

type
  TPersonas = packed record
    nombre: string[20];
    apellido: string[20];
    edad: integer;
    domicilio: string[100];
    ciudad: string[20];
    codigopostal: integer;
  end;
 
...
 
with TPersonas do
begin
  nombre := 'Carlos';
  apellido := Perez;
  edad := 44;
  domicilio := 'Av. Colón 8945';
  ciudad := 'Bogotá';
  codigopostal := 956545;
end;
 
...
 
Showmessage(TPersonas.nombre + ' ' + TPersonas.apellido);
带有Case的变量字段声明
该声明允许基于case声明而彼此重叠的不同替代数据类型。

例如,如果我们有一个测量记录,则它可以是正方形或圆形的不同字段,例如:

type
  TObjeto = record
    nombreobj: string;
    Case esCirculo : Boolean of
      True :
        (diametro: extended);
      False :
        (ancho: extended;
         alto: extended);
  end;
 
...
 
  TObjeto.nombreobj := 'Circulo Rojo';
  TObjeto.esCirculo := True;
  TObjeto.diametro := 52.29;
 
  TObjeto.nombreobj := 'Cuadrado Negro';
  TObjeto.esCirculo := False;
  TObjeto.ancho:= 19;
  TObjeto.alto:= 49;
 
// Esto provocará una exception
  TObjeto.nombreobj := 'Circulo Rojo';
  TObjeto.esCirculo := False; 
  TObjeto.diametro := 52.29; // Este Field no está permitido si esCirculo := False
请记住,使用关键字With可以使我们无需在每行中为记录名称加上前缀就可以对字段进行寻址。例如:

with TObjeto do
begin
  nombreobj := 'Circulo Rojo';
  esCirculo := True;
  diametro := 52.29;
end;
 
with TObjeto do
begin
  nombreobj := 'Cuadrado Negro';
  esCirculo := False;
  ancho:= 19;
  alto:= 49;
begin
与Java等其他面向对象的语言不同,与其他语言的类相比,传递数据集时,Delphi注册提供了更好的性能。

相关阅读 >>

Delphi得到cpu的序列号

Delphi [数据库连接字符串] access 连接字符串

Delphi 计算文件大小

Delphi xe5 android 程序退出功能

Delphi 获取中文/数字星期的函数

字符串提取算法

Delphi xe5在zip文件中添加某个txt文件并写入文字

怀念一下这些经常不记得的Delphi代码

Delphi写console控制台程序

Delphi 关于内存数据与 json

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...