Delphi中record的使用
type
TMyRecord = record
type
TInnerColorType = Integer;
var
Red: Integer;
class var
Blue: Integer;
procedure printRed();
constructor Create(val: Integer);
property RedProperty: TInnerColorType read Red write Red;
class property BlueProp: TInnerColorType read Blue write Blue;
end;
begin
Red := val;
end;
begin
writeln('Red: ', Red);
end;
虽然现在records能实现许多类的特性,但它与类之间还是有一些不同:
1 records不支持继承
2 records能含有variant parts(呵呵,不知翻译成什么能说明白,就是case部分),类不可以
3 records是值类型,可以通过赋值拷贝,类是参考类型,因此不能通过赋值来拷贝。
4 records在win32和.net上允许操作符重载,类仅在.net上支持操作符重载
5 records使用一个缺省的没有参数的构造函数(constructor)自动创建,而类必须明确的创建。在record中用户定义的构造函数必须有一个或多个参数。
6 record类型不能有析构函数(destructors)
7 虚方法(那些指定了virtual、dynamic和message关键字的)不能使用在record类型中
8 record类型在win32开台上不能实现接口,在.net平台上能实现接口
具体就是比如说你做一个录入&查询学生基本情况的程序,你就可以定义
student[50]:record
name:string;
age:integer;
weight:integer;
height:integer;
end;
然后在主程序里你就可以按 student[12].name:='yyydeyangzi'这样来给它赋值了..读取、打印等操作类似..这就算是一定意义上的面向对象程序设计了...也就是说把student[12]看作一个对象,name、age、weight、height之类的就是这个对象的各种属性...
但以上是按照pascal语法来说的,我对Delphi没有什么研究,但大体上应该是一致的...
转载于:https://blog.51cto.com/447118/274399
Delphi中record的使用相关推荐
- delphi中Record 和Packed Record的区别
Record 和Packed Record 第一种不带packed关键字的结构体表明编译器编译时要求进行字对齐,而第二种带packed关键字的结构体表明编译器编译该结构体时不需要进行字对齐,这种方式对 ...
- DELPHI 中 Window 消息大全使用详解
Window 消息大全使用详解 导读: Delphi是Borland公司的一种面向对象的可视化软件开发工具. Delphi集中了Visual C++和Visual Basic两者的优点:容易上手.功能 ...
- Delphi中的线程类
Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchr ...
- 奇淫怪巧之在Delphi中调用不申明函数
前一阵子,研究了一段时间的Win32Asm,研究到后来发现Win32的ASM实际上还是和C版的介绍的一样.甚至还封装了一个简版的类似VCL库结构框架的32ASM结构库,不过搞着搞着就没兴趣了,也没继续 ...
- Delphi中的指针类型
首先讲讲指针类型在delphi中是怎么定义的: 指针类型的定义语法 type <指针类型标识符>=^<基类型>: 指针指向动态变量的类型是由^符后的基类型来标识,^符号也就是指 ...
- Delphi中使用ListView和TreeView的Item中的Data可能被忽略的内存泄漏
Delphi中大家在使用 ListView和TreeView时,一般都会使用到Item的Data属性来保存大家自己的内部数据,这个Data的声明如下: property Data: Pointer; ...
- Delphi 中的 Var buffer 开类型参数
以下是在网上收集的一些对无类型参数的说明.个人理解无类型变量就是一个指针. 象Delphi中function Read(var Buffer; Count: Longint): L ...
- Delphi中的时间操作技术(1)
在编写应用程序时,我们需要经常与时间和日期打交道,因此经常需要一些对时间的控制技术,在Delphi中,提供了一整套对日期和时间的操作函数,在此,我将详细介绍一下在Delphi中的时间操作技术,希望能对 ...
- delphi 中几种多线程操作方式
在了解多线程之前我们先了解一下进程和线程的关系 一个程序至少有一个主进程,一个进程至少有一个线程. 主线程又程为UI线程. 进程和线程的主要差别在于它们是不同的操作系统资源管理方式.进程有独立的地址空 ...
最新文章
- runtime模型与字典互转
- selenium鼠标操作 包含右击和浮层菜单的选择
- 转载.Android HAL实现的三种方式(1) - 基于JNI的简单HAL设计
- MYSQL BENCHMARK函数的使用
- Oracle数据导入要多久,oracle数据库备份导入要注意的几个问题
- linuxliveu盘怎么用_施耐德LMC058 plc用U盘怎么传输程序?
- 【51NOD】1006 最长公共子序列Lcs(动态规划)
- AI2XAML's Bug
- 通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[下]:管道是如何构建起来的?...
- python运算符_零基础学习 Python 之运算符
- The Basic Knowledge of Graph(图的基本知识)
- 电磁场与电磁波第四版 课后习题
- 使用ArcGIS软件对 .jpg 图片添加经纬网及地理配准失败的原因
- windows下远程连接Mysql
- MediaPlayer.isPlaying() IllegalStateException的一种情况
- 【WPS表格】创建表格,汇总行
- 零跑C11斩获大奖,带来了极致的挑战
- 数量关系-排列组合和概率
- 计算机0基础知识,计算机基础知识0课件.ppt
- 多项式除以多项式例题讲解_多项式乘以多项式训练题.doc
热门文章
- maya python教程_Chris Zurbrigg的Maya Python教程合集
- 隐藏cmd,让电脑读出文字(中文发音),
- Github复现之D-LinkNet(补全了验证部分代码,效果还行)
- ArcGIS空间分析实验教程-部分实验案例(ArcPy实现)
- 【Python】flask框架学习 flask框架的基本使用
- html转换成移动端h5,HTML5移动端手机网站基本模板
- mac一直ReportCrash
- 网络自动化运维(NetDevOps)创作者推荐
- 山东初级消防设施操作员考前必背考点,模拟真题及答案
- matlab在管理学中的应用简述【一】