Delphi笔记1.doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:23 大小:110KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Delphi笔记1.doc

Delphi笔记1.doc

预览

免费试读已结束,剩余 13 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Delphi笔记-ObjectPascal的相关内容HYPERLINK"http://poorboy030103.blog.163.com/blog/"\l"m=0&t=1&c=fks_081065083087081066081087074070080080082070085082081"\o"Delphi学习笔记"Delphi学习笔记2007-12-0821:15:51阅读121评论0字号:大中小订阅Pascal有3种字符串类型:1.ShortString该类型的字符串的最大长度为255个字符。所占的内存中的第一个字节地址中存放字符串的长度信息。每个字符占一个字节的空间。它所占的内存是静态分配的。2.AnsiString是一种动态分配内存的字符串类型,最大长度为2的31次幂个字符,占2GB的内存空间。它的变量是一个占4B内存的指针,指向动态内存。每个字符占一个字节。3.WideString也是一种动态分配内存的字符串类型,最大长度比AnsiString小一个字符。它的效率比AnsiString差。每个字符占两个字节。内存分配和释放函数:AllocMem()FreeMem()GlobalAlloc()GlobalFree()GetMem()FreeMem()New()Dispose()StrAlloc()StrDsipose()StrNew()StrDispose()VirtualAlloc()VirtualFree()SetLength()函数和过程的重载要用关键字overload,类的函数和过程的覆盖要用override。它们的区别是:重载的多个函数具有相同的函数名,不同的参数列表;覆盖用在父类与子类之间,子类的同名函数覆盖父类的同名虚函数或动态函数。数据类型表:8位有符号整数:ShortInt8位无符号整数:Byte16位有符号整数:SmallInt16位无符号整数:Word32位有符号整数:Integer,LongInt32位无符号整数:LongWord,Cardinal64位有符号整数:Int644字节浮点数:Single6字节浮点数:Real488字节浮点数:Double10字节浮点数:Extended64位货币值:currency8字节日期/时间值:TDateTime16字节variant:Variant,OleVariant,TVarData1字节字符:Char2字节字符:WideChar固定长度(最大为255个字符)的字符串:ShortString动态字符串:AnsiString,WideString以NULL(即以#0)结束的字符串:PChar,PWideChar1字节布尔值:Boolean,ByteBool2字节布尔值:WordBool4字节布尔值:BOOL,LongBool当第一次声明了一个AnsiString变量时,它是没有长度的,也没有分配内存空间,可以通过给它赋值或调用SetLength()函数来给它分配内存空间。注意:当它没有分配空间时是不能像访问数组一样访问它的。如果将AnsiString字符串强制转换成PChar类型后,要将其转换回来则可以调用函数RealizeLength()变体类型Variant主要是为了支持OLE自动化操作。它能动态改变类型,例如:varv:Variant;beginv:='Delphi';v:=1;v:=124.22v:=true;v:=CreateOleObject('word');end;变体类型能支持所有的简单数据类型,如:整数、浮点数、字符串、布尔值、日期和时间、货币值和OLE自动化对象,但不支持ObjectPascal对象。Variant类型的数据结构在System单元中的定义如下:typePVarData=^TVarData;TVarData=packedrecord//该类型占16字节VType:Word;//指示该变体类型代表的实际类型Reserved1,Reserved2,Reserved3:Word;caseIntegerofvarSmallInt:(VSmallInt:SmallInt);varInteger:(VInteger:Integer);varSingle:(VSingle:Single);varDouble:(VDouble:Double);varCurrency:(VCurrency:Currency);varDate:(VDate:Double);varOleStr:(VOleStr:PWideChar);varDispatch:(VDispatch:Pointer);varError:(VError:LongWord);varBoolean:(VBoolean:WordBool);varUnKnown:(VUn