Delphi常用关键字用法详解
转载
本文详细介绍了Delphi中常用的各个关键字名称及用法,供大家在编程过程中借鉴参考之用。详情如下:
absolute:
?
1 2 3 4 5 6 7 8 9 10 | var Str: string [ 32 ]; StrLen: Byte absoluteStr; begin Str := 'abc' ; Edit1 . Text := IntToStr(StrLen); end ; |
abstract:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 | type TDemo = class private protected procedure X; virtual; abstract; public constructor Create; destructor Destroy; override; published end ; |
and:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | if (a> 0 ) and (b> 0 ) then var a,b,c: Integer ; begin c := (a and b); end ; if a> 0 and b> 0 then if a>( 0 and b)> 0 then if (a> 0 ) and (b> 0 ) then |
array:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var Arr1: array [ 1..10 ] of Integer ; var Arr2: array of Integer ; function X(A: array of Integer ): Integer ; var i: Integer ; begin Result := 0 ; for i := 0 to Length(A)- 1 do Result := Result + A[i]; end ; |
as:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | procedure BtnClick(Sender:TObject); begin (Sender as TButton).Caption := 'Clicked' ; end ; (HTTPRIO as IExp).GetConnection; var i: Integer ; s: string ; begin s := (i as string ); end ; s := string (i); |
asm:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function IntToHex(Value: Integer ; Digits: Integer ): string ; asm CMP EDX, 32 JBE @A1 xor EDX, EDX @A1: PUSH ESI MOV ESI, ESP SUB ESP, 32 PUSH ECX MOV ECX, 16 CALL CvtInt MOV EDX, ESI POP EAX CALL System.@LStrFromPCharLen ADD ESP, 32 POP ESI end ; |
assembler:
?
1 2 3 | function IntToHex(AValue: Int64 ): string ; assembler; |
automated:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | type TDemo = class automated Str: WideString ; end ; type TDemo = class automated Str: AnsiString ; end |
begin:
?
1 2 3 4 5 6 7 8 9 10 11 | procedure X; begin ShowMessage( 'A Demo' ); end ; for i:= 1 to 100 do begin sum := sum + i; if sum > 1000 then Break; end ; |
case:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function GetDays(AYear,AMonth: Integer ): Integer ; begin case AMonth of 1 , 3 , 5 , 7 , 8 , 10 , 12 : Result := 31 ; 4 , 6 , 9 , 11 : Result := 30 ; 2 : begin if IsLeapYear(AYear) then Result:= 29 else Result:= 28 ; end ; else Result:= 0 ; end ; |
cdecl:
?
1 2 3 4 5 6 7 8 9 | int X(int i) function X(i: Integer ): Integer ; Cdecl; external 'Demo.dll' ; |
class:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | type ClassDemo = class (TObject) private public constructor Create; end ; type ClassA = class private public procedure Y; end ; type ClassB = class (ClassA) private public class procedure X; end ; procedure ClassA . Y; begin Self . X; end ; |
const:
?
1 2 3 4 5 6 7 8 | const MyFileName = 'Delphi' ; const MyInteger = 100 ; function X( const i: Integer ): string ; |
constructor:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 | type ClassDemo = class (TObject) private fValue: Integer ; public constructor Create; end ; constructor ClassDemo . Create; begin fValue := 0 ; end ; |
contains:
?
1 2 3 4 5 6 7 8 | package DATAX; requires rtl, clx; contains Db, DBLocal, DBXpress; end . |
default:
?
1 2 3 4 5 6 7 8 9 10 11 | type ClassDemo = class private fValue: Integer ; published property Value: Integer read fValue write fValue default 0 ; end ; property strings[Index: Integer ]: string read GetString write PutString; Default; |
destructor:
?
1 2 3 4 5 6 7 8 9 10 | type ClassDemo = class (TComponent) public destructor Destroy;override; end ; destructor Destroy; overload; |
dispid:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | type IStringsDisp = dispinterface [ '{EE05DFE2-5549-11D0-9EA9-0020AF3D82DA}' ] property ControlDefault[Index: Integer ]: Olevariant dispid 0 ; default; function Count: Integer ; dispid 1 ; property Item[Index: Integer ]: Olevariant dispid 2 ; procedure Remove(Index: Integer ); dispid 3 ; procedure Clear; dispid 4 ; function Add(Item: Olevariant): Integer ; dispid 5 ; function _NewEnum: IUnknown; dispid - 4 ; end ; |
dispinterface:
?
1 2 3 4 5 6 7 | |
div:
?
1 2 3 4 5 6 7 | var a,b,c: Integer ; begin a := 20 ; b := 3 ; c := a div b; end ; |
do:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | for i := 1 to 100 do sum:=sum+i; while i < 100 do begin sum := sum + i; Inc(i); end ; try i := StrToInt(s); except on exception do ShowMessage( 'Error!' ); end ; with Memo1 . Lines do begin Clear; Append( 'abc' ); Append( '123' ); end ; |
downto:
?
1 2 3 4 | for i := 100 downto 1 do ListBox1 . Items . Add(IntToStr(i)); |
dynamic:
?
1 2 3 | procedure X(i: Integer ); dynamic; |
else:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | if a > b then c := a else c:=b; case Tag Of 1 :Result:= 1 ; 2 :Result:= 2 ; 3 :Result:= 3 ; else Result:= 0 ; end ; try i := StrToInt(s); Excpet on EZeroDivide do Result := 1 ; on EOverflow do Result := 2 ; else Result := 0 ; end ; |
end:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | procedure X; begin with Button1 do begin if Button1 . ShowHint then Button1 . Caption := 'Hinted' else Button1 . Caption := 'Not Hinted' ; end ; end ; package DATAX; requires rtl, clx; contains Db, DBLocal, DBXpress; end . |
except:
?
1 2 3 4 5 6 | try i := StrToInt(s); except ShowMessage( 'Error!' ); end ; |
export:
?
1 2 3 4 5 | function Add(a,b: Integer ): Integer ; export; function Add(a,b: Integer ): Integer ; stdcall; external 'Demo.exe' ; |
exports:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | libraryDemo; function X(i: Integer ): string ; stdcall; begin Result:=IntToStr(i); end ; exports X; begin end . library Demo; function X(i: Integer ): string ; overload; stdcall; begin Result := IntToStr(i); end ; function X(s: string ): Integer ; overload; stdcall; begin Result := StrToInt(s); end ; exports X(i: Integer ) name 'x1' , X(s: string ) name 'x2' ; begin end . |
external:
?
1 2 3 4 5 6 7 8 9 10 11 | {$L Demo.OBJ} procedure X(i: Integer );external; function A(FileName: string ): string ; external 'Demo.dll' ; function A(Name: string ): string ; overload; stdcall; external 'Demo.dll' name 'A1' ; function A(Code: Integer ): string ; overload; stdcall; external 'Demo.dll' name 'A2' ; |
far:
?
1 2 3 4 5 | functionAdd(a,b: Integer ): Integer ; Far; function Add(a,b: Integer ): Integer ; stdcall; external 'Demo.exe' ; |
file:
?
1 2 3 4 5 6 7 8 9 | type TPerson = record PName: string [ 32 ]; PAge: Integer ; end ; var PFile: file of TPerson; |
finalization:
?
1 2 3 4 5 6 7 | initialization ActiveX . OleInitialize( nil ); finalization ActiveX . OleUninitialize; |
finally:
?
1 2 3 4 5 6 7 8 | try Node := Node . GetNext; Edit1 . Text := Node . Text; finally Node := nil ; end ; |
for:
?
1 2 3 4 | for i := 1 to 100 dosum := sum + i; for i := 100 downto 1 do Inc(sum); |
forward:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function X(i: Integer ): Integer ; forward; procedure Y(s: string ); forward; ... function X; begin Result := i * 2 ; end ; procedure Y; begin WriteLn (s); end ; |
function:
?
1 2 3 4 5 6 7 | functionX(i: Integer ): Integer ; type TFun = function (i: Integer ): Integer of object ; |
goto:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var a,b: Integer ; label X,Y; begin if a > b then goto X else goto Y; X: WriteLn ( 'a > b' ); Y: WriteLn ( 'b > a' ); end ; |
if:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | var a,b: Integer ; begin a := 2 ; b := 3 ; if a>b then WriteLn ( 'a=' + IntToStr(a)) else WriteLn ( 'b=' + IntToStr(b)); end ; if a > b then begin WriteLn ( 'a>b' ); WriteLn ( 'a=' + IntToStr(a)); WriteLn ( 'b=' + IntToStr(b)); End else WriteLn ( 'b>a' ); |
implementation:
?
1 2 3 4 5 6 7 8 9 10 | implementation uses frmAbout; begin FormAbout . Show; end ; |
implements:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | type IMyInterface = interface procedure P1; procedure P2; end ; TMyImplclass = class procedure P1; procedure P2; end ; TMyclass = class (TInterfacedObject, IMyInterface) FMyImplClass: TMyImplClass; property MyImplClass: TMyImplclass read FMyImplclass implements IMyInterface; procedure IMyInterface . P1 = MyP1; procedure MyP1; end ; procedure IMyInterface . P1 = MyP1; |
in:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | type TCol = (cA,cB,cC); TCols = set of TCol; var Cols: TCols; begin Cols := [cA,cB]; if cA in Cols then ShowMessage( 'cA in Cols' ) else ShowMessage( 'cA not in Cols' ); end ; Uses Unit1 in 'Unit1.pas' ; var s: string ; sl: TStringList; begin ... for s In sl do begin ShowMessage(s); end ; end ; |
index:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | type TForm1 = class (TForm) private function GetInfo( const Index: Integer ): Longint ; procedure SetInfo( const Index: Integer ; const Value: Longint ); public property iLeft: Longint index 0 read GetInfo write SetInfo; property iTop: Longint index 1 read GetInfo write SetInfo; property iWidth: Longint index 2 read GetInfo write SetInfo; property iHeight: Longint index 3 read GetInfo write SetInfo; end ; function TForm1 . GetInfo( const Index: Integer ): Longint ; begin case Index of 0 : result := self . Left; 1 : Result := self . Top; 2 : result := self . Width; 3 : result := self . Height; end ; end ; property Selected[Index: Integer ]: Boolean read GetSelected write SetSelected; |
inherited:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | type TDemo = class (TComponent) public constructor Create(AOwner: TComponent); override; end ; constructor TDemo . Create(AOwner: TComponent); begin inherited Create(AOwner); end ; inherited Create(AOwner); Inherited ; |
initialization:
?
1 2 3 4 5 6 7 | initialization ActiveX . OleInitialize( nil ); finalization ActiveX . OleUninitialize; |
inline:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function IntToStr(Value: Integer ): string ; asm InLine; PUSH ESI MOV ESI, ESP SUB ESP, 16 xor ECX, ECX PUSH EDX xor EDX, EDX CALL CvtInt MOV EDX, ESI POP EAX CALL System.@LStrFromPCharLen ADD ESP, 16 POP ESI end ; |
interface:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | Interface uses frmAbout; var FAbout: TFormAbout; begin FAbout := TFormAbout . Create(Self); FAbout . Show; end ; type IMalloc = interface (IInterface) [ '{00000002-0000-0000-C000-000000000046}' ] function Alloc(Size: Integer ): Pointer ; stdcall; function Realloc(P: Pointer ; Size: Integer ): Pointer ; stdcall; procedure Free(P: Pointer ); stdcall; function GetSize(P: Pointer ): Integer ; stdcall; function DidAlloc(P: Pointer ): Integer ; stdcall; procedure HeapMinimize; stdcall; end ; |
is:
?
1 2 3 4 5 6 7 8 | var Comp : TComponent; begin ... if Comp Is TEdit then ( Comp as TEdit).Text := 'Edit' ; end ; |
label:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var a,b: Integer ; label X,Y; begin if a > b then goto X else goto Y; X: WriteLn ( 'a>b' ); Y: WriteLn ( 'b>a' ); end ; |
library:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | library Editors; uses EdInit, EdInOut, EdFormat, EdPrint; exports InitEditors, doneEditors name done, InsertText name Insert, DeleteSelection name Delete, FormatSelection, PrintSelection name Print, SetErrorHandler; begin InitLibrary; end . |
message:
?
1 2 3 4 5 6 7 8 9 10 11 12 | procedure Refresh( var Msg: TMessageRecordtype); messageID_REFRESH; procedure Refresh( var Msg: TMessageRecordtype); begin if Chr(Msg . Code) = # 13 then ... else inherited ; end ; |
mod:
?
1 2 3 4 5 6 7 | var a,b,c: Integer ; begin a := 20 ; b := 3 ; c := a mod b; end ; |
name:
?
1 2 3 4 5 | function MessageBox(HWnd: Integer ; Text, Caption: PChar ; Flags: Integer ): Integer ; stdcall; external 'user32.dll' name 'MessageBoxA' ; |
near:
?
1 2 3 4 5 | function Add(a,b: Integer ): Integer ; near; function Add(a,b: Integer ): Integer ; stdcall; external 'Demo.exe' ; |
nil:
?
1 2 3 4 5 6 | while Node <> nil do begin ListBox1 . Items . Add(Node . Text); Node := Node . GetNext; end ; |
nodefault:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | type TClassA = class private fValue: Integer ; published property Value: Integer read fValue write fValue default 0 ; end ; TClassB = class (TClassA) published property Value: Integer read fValue write fValue nodefault; end ; |
not:
?
1 2 3 4 5 6 7 8 9 | if a > b then if not (a < b) then procedure Button1Click(Sender: TObject); begin StatusBar1 . Visible := not StatusBar1 . Visible; end ; |
object:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | type ODemoA = object end ; ODemoB = object (ODemoA) end ; type TMyFun = function (i: Integer ): Integer of Object ; TMyProc = procedure (s: string ) of object ; |
of:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | case Tag Of 0 : Result := 'a' ; 1 : Result := 'b' ; end ; type TDemo = class of TComponent; var MyInt: array of Integer ; var MyFile: file of Byte ; type TCol = (cA,cB,cC); TCols = set of TCol; type MyFun = function (I: Integer ): Integer of Object ; |
on:
?
1 2 3 4 5 6 7 | try i := StrToInt(s); except on E: exception do ShowMessage(E . Message); end ; |
or:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | if (a> 0 ) or (b> 0 ) then var a,b,c: Integer ; begin c := (a or b); end ; 例如: if a> 0 or b> 0 then if a>( 0 or b)> 0 then if (a> 0 ) or (b> 0 ) then |
out:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | procedure X(out i: Integer ; out s: string ); begin i := i * 2 ; s := s + 'abc' ; end ; procedure TForm1 . Button1Click(Sender: TObject); var i: Integer ; s: string ; begin i := 20 ; s := 'xxx' ; X(i,s); end ; |
overload:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function X(i: Integer ): string ; overload; function X(s: string ): string ; overload; type TDemo = class (TComponent) public procedure CreateWnd(AOwner: TWinControl); overload; end ; procedure CreateWnd; procedure CreateWnd(AOwner: TWinControl); |
override:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | procedure Create(AOwner: TComponent); override; type TClassA = class procedure X; virtual; end ; TClassB = class (TClassA) procedure X; override; end ; procedure X; procedure X; |
package:
?
1 2 3 4 5 6 7 8 9 | package DATAX; requires rtl, clx; contains MyUnit in 'C:\MyProject\MyUnit.pas' ; end . |
packed:
?
1 2 3 4 5 6 7 | type TPerson = packed Record PName: string [ 32 ]; PAge: Integer ; end ; MyArray: packed array of PChar ; |
pascal:
?
1 2 3 4 5 6 7 | function X(i: Integer ): Integer ; Pascal; begin Result := i * 2 ; end ; |
private:
?
procedure:
?
1 2 3 4 5 6 7 | procedureX(i: Integer ); type TProc = procedure (i: Integer ) of object ; |
program:
?
1 2 3 4 5 6 7 8 9 10 11 | program Project1; uses Forms, Unit1 in 'Unit1.pas' ; {$R *.res} begin Application . Initialize; Application . CreateForm(TForm1, Form1); Application . Run; end . |
property:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | type TDemo = class Private fValue: Integr; Published property Value: Integer read fValue write fValue; end ; type TOnTextChange= procedure (Sender: TObject) of object ; TDemo = class private fEvent: TOnTexChange; published property OntextChange: TOnTextChange read fEvent write fEvent; end ; |
protected:
?
public:
?
published:
?
raise:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function GetString(i: Integer ): string ; begin if i < 0 then raise exception . Create( 'Integer Cannot smaller than 0' ); Result := IntToStr(i); end ; try i := StrToInt(s); except on E: exception do raise exception . Create(E . Message); end ; |
read:
?
1 2 3 4 5 6 | private fValue: Integer ; published property Value: Integer readfValue; |
readonly:
?
1 2 3 | propertyReadOnly; |
record:
?
1 2 3 4 5 6 7 | type TPerson = record PName: string [ 32 ]; PAge: Integer ; end ; |
register:
?
1 2 3 4 5 6 7 | functionAdd(a,b: Integer ): Integer ; Register; Register procedure Register; begin RegisterComponents( 'Sample' , [TDemo]); end ; |
reintroduce:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 | type TClassA = class procedure X; end ; TClassB = class (TClassA) procedure X; reintroduce; end ; TClassC = class (TClassB) procedure X(i: Integer ); reintroduce; end ; |
repeat:
?
1 2 3 4 5 6 7 | i := 0 ; repeat sum := sum + i; Inc(i); until (i >= 100 ); |
requires:
?
1 2 3 4 5 6 | package DATAX; requires rtl, clx; end . |
resourcestring:
?
1 2 3 4 5 6 7 | ResourceString CreateError = 'Cannot create file %s' ; OpenError = 'Cannot open file %s' ; LineTooLong = 'Line too long' ; ProductName = 'Borland Rocks' ; SomeResourceString = SomeTrueConstant; |
safecall:
?
1 2 3 4 5 | procedure X(s: WideString ); safecall; procedure X(s: PAnsiString ); |
set:
?
1 2 3 4 5 6 7 8 9 10 | type TCol = (cA,cB,cC); TCols = set ofTCol; var Cols: Tcols; begin Cols := Cols + [cA,cB]; end ; |
shl:
?
1 2 3 4 5 6 | var x: Integer ; begin X := 2 shl 3 ; end ; |
shr:
?
1 2 3 4 5 6 | var x: Integer ; begin X := 16 shr 2 ; end ; |
stdcall:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Library Demo; function X(i: Integer ): Integer ; stdcall; begin Result := i * 2 ; end ; exports X; begin end . function X(i: Integer ): Integer ; stdcall; external 'Demo.dll' ; |
stored:
?
1 2 | property Value: string read fValue write fValue stored True ; |
string:
?
1 2 3 | var Str: string ; |
then:
?
1 2 3 4 5 6 7 8 9 | var a,b: Integer ; begin if a > b then WriteLn ( 'a' ) else WriteLn ( 'b' ); end ; |
threadvar:
?
1 2 3 4 5 6 | threadvar S: AnsiString ; S := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ; S := '' ; |
to:
?
1 2 3 4 | for i := 10 to 100 do ListBox1 . Items . Add(IntToStr(i)); |
try:
?
1 2 3 4 5 6 | try i := StrToInt(s); except ShowMessage( 'Error' ); end ; |
type:
?
1 2 3 4 5 6 7 8 | type TDemo = class end ; type TCol = (cA,cB,cC); TInt = Integer ; |
unit:
?
1 2 3 4 5 6 7 | Unit Unit1; Interface uses Classes; implementation end . |
until:
?
1 2 3 4 5 6 7 | i := 0 ; repeat sum := sum + i; Inc(i); until (i >= 100 ); |
uses:
?
1 2 3 4 5 6 | Interface uses Classes; Implemention uses frmAbout; |
var:
?
1 2 3 4 5 6 7 8 | var i: Integer ; s: string ; function X( var i: Integer ): Integer ; |
varargs:
?
1 2 3 | function printf(Format: PChar ): Integer ; cdecl; varargs; |
virtual:
?
1 2 3 | procedure X(i: Integer ); virtual; |
while:
?
1 2 3 4 5 6 7 | i := 0 ; while i < 100 do begin sum := sum + i; Inc(i); end ; |
with:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 | with Form1 . Memo1 . Lines do begin Clear; Append( 'abc' ); Append( 'def' ); SaveToFile( 'C:\demo.txt' ); end ; Form1 . Memo1 . Lines . Clear; Form1 . Memo1 . Lines . Append( 'abc' ); Form1 . Memo1 . Lines . Append( 'def' ); Form1 . Memo1 . Lines . SaveToFile( 'C:\demo.txt' ); |
write:
?
1 2 3 4 5 6 | private fValue: Integer ; published property Value: Integer writefValue; |
writeonly:
?
1 2 3 | property writeonly; |
xor:
?
1 2 3 4 5 6 7 8 9 10 11 12 | var a,b: Integer ; begin a := 2 ; b := 3 ; if a xor b then WriteLn ( 'a xor b' ) else WriteLn ( 'a not xor b' ); end ; WriteLn (IntToStr( 3 xor 5 )); |
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。