本文整理自网络,侵删。
记录是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 dobegin 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 dobegin nombreobj := 'Circulo Rojo'; esCirculo := True; diametro := 52.29;end; with TObjeto dobegin nombreobj := 'Cuadrado Negro'; esCirculo := False; ancho:= 19; alto:= 49;begin与Java等其他面向对象的语言不同,与其他语言的类相比,传递数据集时,Delphi注册提供了更好的性能。
相关阅读 >>
Delphi [数据库连接字符串] access 连接字符串
Delphi xe5在zip文件中添加某个txt文件并写入文字
更多相关阅读请进入《Delphi》频道 >>