delphi的几个特别关键字 object absolute

1、object关键字相当于C++中的struct, record定义个结构体只能定义数据,而object可以定义方法,默认都是public的。

  代码示例如下:

TTest = record
    name: string;
    age: Integer;
  end;

  TTest2 = object
    name: string;
    age: Integer;

    function _Info: string;
  end;

function TTest2._Info: string;
begin
  Result := name + ‘ is ‘ + IntToStr(age) + ‘ years old.‘
end;

 

2、absolute关键字 【Absolute address(绝对地址)】

你可以创建一个新变量,它和另一个变量在内存的同一个位置。要这样做的话,声明这个新变量时在类

型名的后面跟关键字absolute,后面再跟一个已存在(先前声明)的变量。比如,

var
Str: string[32];
StrLen: Byte absoluteStr;

指定变量StrLen从Str的地址开始。因为短字符串的第一个字节包含字符串的长度,StrLen的值就是Str

的长度。

使用absolute声明时不能初始化变量,也不能组合其它指示字(和absolute一同使用)。

时间: 2024-11-05 19:04:18

delphi的几个特别关键字 object absolute的相关文章

Delphi中的关键字与保留字

Delphi中的关键字与保留字 分类整理 Delphi 中的“关键字”和“保留字”,方便查询 感谢原作者的收集整理! 关键字和保留字的区别在于,关键字不推荐作标示符(编译器已经内置相关函数或者留给保留实现),二保留字是根本不可能作标示符(编译时有警示!) [系统保留字] and            array          as             asm begin          case           class          const constructor   

Delphi APP 開發入門(六)Object Pascal 語法初探

Delphi APP 開發入門(六)Object Pascal 語法初探 分享: Share on facebookShare on twitterShare on google_plusone_share 閲讀次數:3442 發表時間:2014/06/10 tags: 行動開發 教學 App Delphi XE6 Android iOS Delphi APP 開發入門(五)GPS 定位功能 << 前情 經過前面五週幾乎每週可以寫出一個簡單App後,大家都可以感受到Delphi強大的開發威力!

(转)C#4.0的dynamic和var及object关键字辨析

http://www.cnblogs.com/Mainz/archive/2011/03/10/1980060.html 1: dynamic a = 10; 2: a = a + 10; 3: Console.WriteLine(a.GetType()); 此段代码会输出 System.Int32,第二行不需要类型转换,因为在运行时识别类型.dynamic 在后台使用 System.Object 类型.但与 object 不同的是,动态类型不需要在编译时执行显式转换操作,因为它仅在运行时识别类

Delphi引用C对象文件

C语言应用非常广泛,并在世界各地拥有大量的代码库.这些代码库与Delphi的可比性较小,因此如果我们无需转换为Delphi代码而可以直接使用这些库的部分代码就完美了.幸运的是,Delphi允许连接到C编译出来的对象文件.但这里有” unsatisfied externals”问题. C is a very widely used language, and this has made the worldwide code library for C huge. The code library

Delphi 接口机制真相

Delphi 接口机制真相 分类: DELPHI2012-03-29 14:41 2161人阅读 评论(0) 收藏 举报 delphiinterfaceintegerstringclassfunction 接口(interface)在Delphi中是一个很有意思的东西.Delphi 3开始支持接口,从而形成了COM编程的基础:然而,Delphi中的接口也可用在非COM开发中,实现类似抽象类(含有抽象方法的类)的功能,从而弥补了Delphi中不能多继承(子类有多个同级父类)的不足.这里所讲的int

Qt 数据库创建表失败原因之数据库关键字

本人数据库新手,在创建表时出现问题,最后经查证,找出问题所在.下面的程序是部分节选,在创建数据库表的时候,起先使用的L24的CreateDB,经测试,一直输出 Create testResult Fail, query->isActive()也为false,这就说明问题出在createDB上,也就是说这个QString应该是不符合要求才出错的.后来逐个测试,最后发现是 check varchar(100)的原因,经查看check是数据库关键字. 1 //创建数据库文件路径 2 testResul

Delphi研究,对全局变量函数与OOP编程关系的一点体会 good

感叹:设计VCL的人真是神人啊,感觉比Pascal编译器的设计人还要牛很多,把整个Windows架构理了一遍,封装的如此之好,复用的如此之好(以至于Delphi的控件满天飞,使用还特别容易),简直惊为天人.难怪charles petzold当初觉得不可能用PASCAL语言做Windows编程(李维说的),以前我对这句话的理解是,Pascal语言本身达不到windows编程的要求,可能是因为他这方面的功力达不到(觉得可能是因为petzold对比anders的编译器功力相差太远,不知道编译器的许多细

Delphi中的接口和抽象类

参考:http://blog.csdn.net/xinzheng_wang/article/details/6058643 接口:Interface Delphi中接口中的关键字Interface,但是它和Pascal单元中的Interface没有任何联系 一.抽象类 Delphi中的抽象类只定义行为的类,它规定了由此派生的类必须具备的某些行为.但是抽象类不实现这些行为,而必须由其派生类去实现这些行为.所以它只是一种“抽象”的类,而且,我们无法为抽象类创建实例.比如这段代码 TCode = cl

Delphi里的RTTI与反射(举例换掉FOnChange)

Delphi2010之后的RTTI做了很大休整,现在用起来很爽了哦.甚至可以获取某些类的内部私有单元,然后为其赋值!讲这个RTTI增强的,可以参考网上的多个博客内容,我列举一下:Delphi2010RTTI的增强Delphi的Anymouse方法探秘万一的Rtti系列 我这里的主要目的是挂钩某些内部私有事件,然后增加上一些自己的处理过程,这里我以TMenuItem的私有内部事件FOnChange作为例程.这个私有事件在菜单内部绑定,我们平常状态下,在外部无法更改!但是XE之后这个问题不在存在,使