由于 Pascal (Delphi) 语言与 C 语言函数默认情况下在内部传递参数的方式不同
Borland 采用 __fastcall 这种在 Delhpi 和 C++ 兼容的传递参数格式, 让 BCB 可以直接使用 Delhpi 的函数。
在 BCB 里面遇到 __fastcall 一般都是和 Delphi 兼容的函数。
微软的 API 函数采用了 pascal 参数传递格式, 以前的 API 函数都使用 PASCAL 关键字声明
Windows 98 版本之后, 可能是 M$ 觉得 pascal 这个字眼比较难看 (像 delphi ?) 在 API 函数里面用 #define 定义了 WINAPI
并且在书写上用 WINAPI 逐渐替代了 PASCAL 这个单词,现在仍然可以用 PASCAL 替换 WINAPI 这个关键字
__property 是 Borland 的关键字, 用来声明一个属性或事件的, 格式为:
__property 变量类型 属性或事件名 = { read = 读属性, write = 写属性, default = 默认值 | nodefault };
“读属性”可以是函数,一个返回值与属性的变量类型相同的, 没有参数的函数
“读属性”也可以是一个变量,与属性变量类型相同的一个变量
读这个属性,就相当于调用 read 后面的“读属性”函数,或者读“读属性”这个变量。
“写属性”可以是函数,一个参数类型与属性类型相同的函数
“写属性”也可以是变量,与属性变量类型相同的一个变量
写这个属性(改值),就相当于调用 write 后面的函数,或者写“写属性”这个变量
default 是可视化控件里面用的,表明这个属性值如果采用了默认值,就不储存在 .dfm 文件里,反过来如果 .dfm 里没有,就用默认值
nodefault 也是可视化控件里面用的,表明这个属性值一定要储存在 .dfm 文件里,反过来,如果 .dfm 文件里没有,会出错
如果不是可视化的控件,只是普通的类,不能使用 default 和 nodefault.
另外一个就是 __property 里面还可以用 index 关键字, 如下格式:
__property 变量类型 属性 = { read = 函数名, index = 整数 };
在读这个属性时,调用 read 后面的“函数名”函数,参数为 index 后面的“整数”值
--------------------next---------------------
阅读(1121) | 评论(0) | 转发(0) |