您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > Delphi关键字和保留字
Delphi关键字和保留字分类整理Delphi中的“关键字”和“保留字”,方便查询“关键字”和“保留字”不做区分,一共107个。{-------------------------------------------------------------------------------名称:【program】、【library】、【package】、【unit】功能:用于标识程序文件、动态链接库文件、包文件、单元文件的文件头。program:编译后生成exe文件,可以直接执行。library:编译后生成dll文件,可被其他程序调用。package:编译后生成bpl文件,可被安装到delphi的控件库中,从而在以后的开发中使用控件。unit:编译后生成dcu文件,将被编译到exe和dll文件中。-------------------------------------------------------------------------------}{空程序文件Test.dpr}programProject1;beginend.----------{空动态链接库文件Test.dpr}libraryProject1;beginend.----------{空包文件Test.dpk}packagePackage1;end.----------{空单元文件Test.pas}unitUnit1;interfaceimplementationend.{-------------------------------------------------------------------------------名称:【contains】、【requires】功能:与包文件相关的关键字。contains:用于指出某个包(package)是否包含某个文件,用contains引入的文件必须被添加到包文件中,它可以避免关键文件的引用丢失。requires:指出编译package时的必备条件。若requires的条件未满足,则不允许编译包。-------------------------------------------------------------------------------}packageMyPackage;requires{包需要运行在下面的环境中}rtl,clx;contains{包需要用到下面的文件}DB,DBMyControl;end.{-------------------------------------------------------------------------------名称:【interface】、【implementation】、【initialization】、【finalization】功能:与单元文件相关的关键字。interface:单元文件的接口部分,也用于定义接口类型。implementation:单元文件的实现部分。initialization:单元文件的初始化部分。finalization:单元文件的反初始化部分。-------------------------------------------------------------------------------}{单元文件结构}unitUnit1;interface{引用其他单元、定义数据类型、定义过程函数、定义变量常量等}{此处定义的类型或数据对其他单元是可见的(可访问的)}implementation{引用其他单元、实现接口部分定义的类型、过程、函数的具体代码}{此处定义的类型或变量只对本单元可见}initialization{这里编写单元被载入时所要调用的方法}{通常是初始化一些不能自动初始化的对象,也可以不用}{initialization最常用的情况是对OLE对象做初始化}finalization{这里编写单元被释放时所要调用的方法}{通常是释放掉单元中不能自动释放的对象,也可以不用}{finalization最常用的情况是对OLE对象做反初始化}end.----------{定义接口类型}IEnumerator=interface(IInterface)functionGetCurrent:TObject;functionMoveNext:Boolean;procedureReset;propertyCurrent:TObjectreadGetCurrent;end;{-------------------------------------------------------------------------------名称:【uses】功能:用于引用一个外部的单元。uses语句通常放在一个单元的接口部分或实现部分。-------------------------------------------------------------------------------}{程序文件}programProject1;usesForms,Unit1in'Unit1.pas'{Form1};beginend.----------{单元文件}unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes;implementationusesStrUtrls;end.{-------------------------------------------------------------------------------名称:【type】功能:用于声明各种类型。-------------------------------------------------------------------------------}type{声明接口}IMyInterface=interfaceend;{声明类指针}PMyObject=^TMyObject;{声明类}TMyObject=class(TObject)end;{声明结构}TMyRecord=recordend;{声明函数}TMyFunc=function(I:Integer):string;{声明自定义类型}TCol=(cItemA,cItemB,cItemC);TColSet=setofTCol;TLatter='A'..'Z';TInt=Integer;{-------------------------------------------------------------------------------名称:【var】、【const】、【resourcestring】、【threadvar】、【absolute】功能:用于声明变量和常量var:声明变量,或者声明函数的参数为传址参数。const:声明常量,或者声明函数的参数为常量参数。resourcestring:声明资源字符串。threadvar:声明一个线程内变量,此变量仅供各个线程内部使用。如果在线程外初始化该变量,则初始化的内容不会被传入线程内,当线程创建时,该变量为空,且被认为是线程内的私有变量,与线程外的该变量互不干扰,与其它线程内的该变量也互不干扰。threadvar必须声明为全局变量,然后在各个线程内使用。Delphi说在线程内使用的threadvar必须在线程结束前手动释放其占用的空间。比如S:='';即将字符串资源释放。关于资源释放,Delphi没有更多解释。absolute:定义一个变量与另一个变量地址相同-------------------------------------------------------------------------------}{关于变量和常量的声明}procedureTForm1.Button1Click(Sender:TObject);resourcestring{声明资源字符串}rsButtonCaption='测试(&T)';const{声明常量}conMax=50;var{声明变量}iNum:Integer;bFlag:Boolean;beginButton1.Caption:=rsButtonCaption;iNum:=Random(100);bFlag:=iNum=conMax;Caption:=IntToStr(iNum)+'-'+BoolToStr(bFlag,True);end;----------{关于threadvar}unitForm1Unit;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Forms,Dialogs,StdCtrls;typeTForm1=class(TForm)Button1:TButton;procedureButton1Click(Sender:TObject);private{Privatedeclarations}public{Publicdeclarations}end;varForm1:TForm1;implementation{$R*.DFM}{NOTE:将GlobalStr的定义由var改为threadvar来观察不同}var{线程内外共用此变量}//threadvar{线程内将创建此变量的一个副本,线程内外此变量互不干扰}GlobalStr:string;typeTTLSThread=class(TThread)privateFNewStr:String;protectedprocedureExecute;override;publicconstructorCreate;overload;constructorCreate(constANewStr:String);overload;end;procedureSetShowStr(constS:String;constsTitle:string='');beginifS=''thenMessageBox(0,PChar(GlobalStr),PChar(sTitle),MB_OK)elseGlobalStr:=S;end;constructorTTLSThread.Create;begininheritedCreate(False);end;constructorTTLSThread.Create(constANewStr:String);beginFNewStr:=ANewStr;inheritedCreate(False);end;procedureTTLSThread.Execute;beginFreeOnTerminate:=True;SetShowStr(FNewStr);SetShowStr('','线程内-线程执行时');end;procedureTForm1.Button1Click(Sender:TObject);beginSetShowStr('线程外的GlobalStr变量');SetShowStr('','线程外-线程创建前');TTLSThread.Create('线程内的GlobalStr若为threadvar类型,则与线程外的GlobalStr无关');Sleep(100);SetShowStr('','线程外-线程创建后,观察GlobalStr在线程内外是否不同');end;end.----------{同地址变量}{下面的代码声明了变量ucLen的起始地址与ShortStrig型变量sStr相同,由于ShortString的第0个位置保存了字符串的长度,所以ucLen的值即为字符串的长度。}procedureTForm1.Button1Click(Sender:TObject);varsStr:ShortString;ucLen:ByteabsolutesStr;beginsStr:='1234567890';Caption:=
本文标题:Delphi关键字和保留字
链接地址:https://www.777doc.com/doc-2909789 .html