易截截图软件、单文件、免安装、纯绿色、仅160KB

delphi编程里的bool跟boolean类型有什么区别

bool是LongBool类型。
Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool。后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型。
这四种类型的布尔值占用内存的数量如下:
Boolean 1 Byte
ByteBool 1 Byte
WordBool 2 Bytes(1 Word)
LongBool 4 Bytes(2 Words)
对于ByteBool,WordBool和LongBool三种类型True常量的值为非零,False为零,可以用Ord函数验证;
而对于Boolean类型,True常量的值为1,False为零。在期望Boolean值的上下文中,编译器会将ByteBool,WordBool和LongBool三种类型的非零值转换为True。
然而,在Delphi中布尔表达式和Integer/Real是不兼容的。下面的表格对比了Boolean与ByteBool/WordBool/LongBool在异同:
Boolean
 False < True
Ord(False) = 0
Ord(True) = 1
Succ(False) = True
Pred(True) = False
BoolToStr(True) = -1 //这个函数很变态
BoolToStr(False) = 0
ByteBool, WordBool, LongBool
False <> True
Ord(False) = 0
Ord(True) <> 0
Succ(False) = True
Pred(False) = True
BoolToStr这个函数最莫名其妙了,明明说True的值是1,而它却告诉我们True是-1。函数的原形是:
function BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string;
下面这个表是函数的转换规则:
B UseBoolStrs Value of returned string
True False '-1'
True True TrueBoolStrs数组的第一个值(default, 'TRUE')
False False '0'
False True FalseBoolStrs数组的第一个值(default, 'FALSE')


相关文档:

delphi中ActiveX 和 Web

http://book.77169.com/data/web5302/20050228/20050228__3692503.html
ActiveX 和 Web
在Windows 操作系统下,有一个重要的机制,就是OLE ,就是可以让某
个应用程序(OLE Controller)访问其它应用程序(OLE Server)所提供的
功能,这样做的好处是,如果已经有了完成某项功能的程序,你就不必再为
某项功能编写特定 ......

Delphi 列出目录下的文件

function ListFiles(Dir: String):TStrings;
var
FSearchRec: TSearchRec;
FileList: TStrings;
FindResult: Integer;
begin
if Dir[length(Dir)]<>'\' then Dir:=Dir+'\';
FileList :=TStringList.Create;
FindResult:=FindFirst(Dir+'*.*,faAnyFile+faDirectory,FSearchRec);
while FindRes ......

在Delphi和VC中创建和调用动态链接库

大家在软件开发时经常会遇到这样的情况,在不同的开发环境中为实现一些功能相同的过程,由于开发所使用的设计语言不同,因而不得不编写许多类似的代码,甚至有时要在同一个开发环境不同项目中重写代码,这就造成了很大的资源浪费。动态链接库能较好的解决这个问题,重复利用代码将大大提高了开发效率。一般,用户在应用程序 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号