この記事では、プログラミング プロセスの参考として、Delphi でよく使用されるさまざまなキーワードの名前と使い方を詳しく紹介します。詳細は以下のとおりです。
絶対:
//新しい変数を作成でき、その変数の開始アドレスは別の変数と同じです。var Str: string[32]: ByteAbsoluteStr;//この宣言は変数 StrLen の開始アドレスを指定します。 //文字列の 0 番目の位置には文字列の長さが格納されるため、StrLen の値は文字列の長さになります。beginStr := 'abc';Edit1.Text := IntToStr(StrLen);end;
抽象的な:
//抽象クラスと呼ばれる抽象メソッドを持つクラスを含む、抽象メソッドを作成できます。 //抽象クラスはインスタンス化できず、抽象メソッドはオーバーライドできないため、抽象キーワードは Virtual キーワードまたは Dynamic キーワードと一緒に使用する必要があります。メソッド本体を含みます。 type TDemo = クラス プライベート プロシージャ X; パブリック デストラクター Destroy;
そして:
//1. 論理 AND を表現する if (a>0) and (b>0) then//2. ビット演算を表現する vara,b,c: Integer;beginc := (a and b);end;//And を使用するロジックを表現する場合、条件の競合を避けるために、And の周囲の式を括弧で囲む必要があります。//例: if a>0 and b>0 then//コンパイラーはこれを次のように理解する場合があります: if a>( 0 and b) >0 then//or:if (a>0) および (b>0) の場合//しかし、実際にコンパイルすると、コンパイラは競合を生成し、エラーを報告します。//最初のものには、a>b>c の形式が含まれる可能性があります。 Delphi はサポートされていません。//したがって、And 演算子を使用するときは左右の条件を区別するためにかっこを使用する必要があります。//ビット演算を表現するときは、And と左右のパラメータを囲むかっこも追加する必要があります。
配列:
//配列は配列を表すために使用され、配列は静的配列と動的配列の 2 つのタイプに分けられます。 //静的配列 varArr1: 整数の配列 [1..10];//動的配列。宣言時には要素の数が不明であるため、配列のサイズは SetLength メソッドを使用して後で設定する必要があります。 varArr2: array of Integer;// 配列がパラメータとして使用される場合、配列のサイズは配列を渡すことはできません。配列名を渡してから、Length メソッドを使用して配列関数 X(A: 整数の配列) の要素数を取得することのみ可能です。 Integer;vari: Integer;beginResult := 0;for i := 0長さ(A)-1 doResult := Result + A[i];end;
として:
//As は、あるオブジェクトを別のオブジェクトに変換するために使用されます。プロシージャ BtnClick(Sender:TObject);begin (Sender as TButton).Caption := 'Clicked';end;//オブジェクト充填インターフェイスの変換では、As は次のようにする必要があります。 used (HTTPRIO as IExp).GetConnection;//データ型変換には使用できないため、次のコードは間違っています: vari: Integer;s: string;begins := (i as string);end;//正しい書き方は次のとおりです: s := string(i);
アズム:
//Asm キーワードはアセンブリ コードを挿入するために使用されます。アセンブリ コードを使用する場合は、begin...end;function の代わりに asm...end; 構造体を使用する必要があります。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 ESIend;
アセンブラ:
//Assembler キーワードは、80386 などの初期アセンブリをサポートするために使用されます。 //Asm との違い: Asm では Win32 アセンブリが許可されますが、Assembler では 80x86 アセンブリのみが許可され、Invoke ステートメント関数 IntToHex は許可されません。 (AValue: Int64): アセンブラ;
自動化:
//自動型アクセス指定子は、プログラムのバージョンに下位互換性を持たせるために使用されます。 //ComObj ユニット内のメンバーとそのインスタンスは、自動型アクセス指定子を使用できません。 //プログラムの次のバージョンでは、Str が変更され、typeTDemo = classautomatedStr: AnsiString;end//新しいバージョンの Str 変数は、古いバージョンの WideString 型データを受け入れることができます。そして、自動的に AnsiString に変換されます。//実際の開発では、特別な必要がなければ、一般的に自動アクセス区切りは使用されません。
始める:
//begin キーワードはプログラムまたは構造の始まりを示すために使用され、end キーワード プロシージャで終了する必要があります。また、begin キーワードを使用して、i:=1 から構造の開始点をマークする必要があります。 100 dobeginsum := sum + i; if sum > 1000 then Break;end;
場合:
//Case ステートメントは、条件付き選択を完了するために使用されます。Case ステートメントの選択されたオブジェクトは、整数型、列挙型、文字型などを含む順序付けされた型である必要があります。 // 一致するものがない場合、Case ステートメントは end で終了する必要があります。選択項目、または一般的な選択を行うために追加できます。 function GetDays(A Year,AMonth: Integer): Integer;begin case AMonth of 1,3,5,7,8,10,12: Result := 31; 4,6,9,11: 結果 := 30; 2: 開始 if IsLeapyear(Ayear) then 結果:=29 else 結果:=0; 終了;
cdecl:
//Cdecl は関数呼び出し規約の一種で、C または C++ で作成された DLL から関数を呼び出すときに従わなければならない規則を規定します。 //C または C++ のデータ型を Delphi に変換できます。//コード例。 C++ の場合: int X(int i){ return i*2;}//この関数は Demo.dll でコンパイルされます。Delphi で呼び出す場合は、次の関数を使用する必要があります。 'デモ.dll';
クラス:
//Class キーワードはクラスを宣言または継承するために使用されます。また、クラスとインターフェイスを同時に継承することもできます。 //さらに、Class キーワードはクラスの共通メソッドを宣言するためにも使用できます。親クラスはクラス内からサブクラスのメソッドにアクセスできます。 .type ClassDemo = class(TObject) private public constructionor Create; //メソッドがクラスで宣言されている場合、そのメソッドはクラスと関連するクラスの両方で使用できます。クラス、例: typeClassA = classprivatepublicprocedure Y;end;typeClassB =呼び出す class(ClassA)privatepublicclass プロシージャ メソッド。
定数:
//Const キーワードは定数を宣言するために使用されます。const で宣言されたデータは、関数内で変更することもできません。 = 'Delphi ';const MyInteger = 100;//Const を使用して定数を宣言する場合、そのデータ型を指定する必要はありません。システムが自動的に型を決定し、自動調整を行います。//const を使用して変更不可を宣言できます。関数のパラメータ function X(const i: Integer): string;//現時点では、関数の動作中に i の値を変更することはできません。
コンストラクタ:
//コンストラクター キーワードは、クラスのコンストラクターを宣言するために使用されます。 // コンストラクターは、通常、Create メソッドに存在する CreateWnd メソッドに関連付けられます。 class.type ClassDemo = class( TObject) private fValue: Integer; public コンストラクター Create; end;constructor ClassDemo.Create;beginfValue := 0;end;
含まれるもの:
//Contains キーワードは、パッケージ (Package) に特定のファイルが含まれているかどうかを示します。 //Contains で導入されたファイルはパッケージ ファイルに追加する必要があります。これにより、キー ファイルへの参照が失われるのを回避できます。 rtl、clx が必要です。 Db、DBLocal、DBXpress;end が含まれます。
デフォルト:
//Default キーワードは、プロパティのデフォルト値を示すために使用されます。 //順序付きタイプのプロパティのみがデフォルト値の存在を許可します。それ以外の場合、プロパティ値はコンストラクターで初期化する必要があります。 type ClassDemo = class private fValue: Integer; : Integer read fValue write fValue default 0; end;//クラス プロパティのデフォルト プロパティを指定することもできます。 strings[Index: Integer]: string read GetString write PutString;
デストラクター:
//デストラクターは、クラスが解放されるときに自動的に呼び出されるデストラクターを識別するために使用されます。 //デストラクターは上書きのみが許可され、オーバーロードは許可されません。通常、デストラクターは関数名 ClassDemo = を使用します。 class( TComponent) public destructor Destroy;override; end;//TComponent クラスにも Destroy メソッドがあるので書き換える必要があります//ただし、デストラクターをオーバーロードする場合は許可されません。間違っています: デストラクター破壊、過負荷。
無効にする:
//DispId キーワードは、特定のアダプテーション シリアル番号を指定するために DispInterface インターフェイスで使用されます。 //DispInterface インターフェイスでは、アダプテーション シリアル番号は一意である必要があります。 //DispId が指定されていない場合、システムは自動的にアダプテーションを割り当てます。シリアル番号はインターフェイス内の各メソッドに与えられます。 // アダプテーション タイプ IStringsDisp = dispinterface を通じて DispInterface インターフェイス内のメソッドにアクセスできます。 ['{EE05DFE2-5549-11D0-9EA9-0020AF3D82DA}'] プロパティ ControlDefault[Index: Integer]: オレバリアント dispid 0; 関数 Count: 整数 : オレバリアント dispid 2;削除(インデックス: 整数); プロシージャ dispid をクリアします。 4; 関数 Add(アイテム: オレバリアント): 整数; 関数 _NewEnum: dispid -4;
ディスパッチインターフェイス:
//DispInterface は、特定のアダプター インターフェイスを宣言するために使用されます。このアダプターは、標準システム インターフェイスで受信および送信データを受け入れることができます。 //DispInterface で宣言されたインターフェイスは、参照のみ可能です。呼び出され、動的にバインドされる必要があります。 //DispId を使用してインターフェイスにアダプテーション シリアル番号を割り当てることができます。 //DispInterface は Windows プラットフォームでのみ使用できます。このキーワードはシステムによって自動的にブロックされます。 //通常、DispInterface は使用されません。 //例については、DispId を参照してください。
ディビジョン:
//Div は 2 つの数値の商を求めるために使用されます。Div 演算で使用される 2 つの値は両方とも整数である必要があり、演算結果も整数になります。 := 20; b := 3; c := a div b;
する:
//Do キーワードは、For、while、On、With ステートメントで特定の構造を形成するために使用されます //For ステートメント: for i := 1 to 100 do sum:=sum+i;//while ステートメント: while i < 100 dobegin sum := sum + i; Inc(i);end;//ステートメント (例外処理):try i := StrToInt(s);例外時 do ShowMessage('Error!');end;//Withステートメント:付きMemo1.Lines dobegin Append('abc');end;
まで:
//DownTo キーワードは、ループ変数がデクリメントされることを示すために For ステートメントで使用されます。 for i := 100 downto 1 doListBox1.Items.Add(IntToStr(i));//For ステートメントでは、To キーワードが使用されます。ループ変数をインクリメントするには、DownTo キーワードを使用してデクリメントします。
動的:
//Dynamic は動的メソッドを宣言するために使用されます。 //動的メソッドはオーバーライドでき、コード サイズを可能な限り削減できます (Virtual とは異なります)。procedure X(i: Integer);
それ以外:
//else は、プログラムの実行方向をガイドするために使用されます。条件が満たされない場合は、else に進み、(If ステートメント内で) //If ステートメントを実行します。 No.):if a > b thenc := aelsec:=b;//Case ステートメント: case タグOf1:Result:=1;2:Result:=2;3:Result:=3;elseResult:=0;end;//ステートメント (例外処理):tryi := StrToInt(s);Excpeton EZeroDivide do Result: = 1;EOverflow で do Result := 2;elseResult := 0;end;
終わり:
//End はステートメント ブロックまたはユニットを終了するために使用されます。 //begin、Case、Class、Interface、Asm、Unit、Package などに一致します。 //ステートメント ブロック (ローカル終了) の場合は、End を後に追加する必要があります。セミコロン。//ユニットまたはパッケージ (グローバル終了) の場合は、end の後にピリオドを追加する必要があります。//If ステートメントの else キーワードの前に記号は使用できません。 begin with Button1 do begin if Button1.それからButton1.Caption := 'Hinted' else Button1.Caption := 'Not Hinted'; end;end;//パッケージ内の End を使用して終了します: package DATX;requiresrtl,clx;contains Db、DBLocal、DBXpress;end。
を除外する:
//Except キーワードは例外処理に使用され、try ステートメント内で使用する必要があります。例外が発生した場合は、Except が実行された後のステートメントが実行されます。
輸出:
//Export は関数呼び出しプロトコルを示し、関数をエクスポートできることを示します。 //他のプログラムは DLL 形式でプログラム内の関数を呼び出すことができます。 Add( a,b: Integer): Integer; export;//このプログラムが Demo.exe としてコンパイルされており、別のプログラムがこの関数を呼び出す必要がある場合は、次のステートメント関数 Add(a,b: Integer) を使用できます。整数; 外部呼び出し'デモ.exe';
輸出:
//exports はオブジェクトを出力するために使用されます。複数の項目をカンマで区切って同時に出力できます。 :=IntToStr(i);終了;エクスポートX(i: 整数): 文字列; stdcall;begin Result := IntToStr(i);end;function X(s: string): stdcall;begin Result := StrToInt(s);end;exportsX (i: 整数) 名前 'x1',X(s: 文字列) 名前 'x2';beginend。
外部の:
//外部キーワードは、OBJ 内の外部またはメソッドを参照するために使用されます。{$L Demo.OBJ}procedure X(i:Integer);external;//DLL または外部プログラムから参照される場合、使用できます。次のコード: function A(FileName: string): string; external 'Demo.dll';//参照される関数がオーバーロードされている場合は、参照される名前を追加で指定する必要があります。 stdcall; external 'Demo.dll' name 'A1'; function A(Code: Integer): string; external 'Demo.dll' name 'A2';// 外部キーワードを使用する場合は注意が必要です。そうでない場合はエラーが発生します。
遠い:
//Far は関数呼び出しプロトコルを示し、関数がリモートで呼び出せることを示します。 //他のプログラムは dll 形式で関数を呼び出すことができます。 functionAdd(a,b: Integer): Integer; Far ;//このプログラムが Demo.exe にコンパイルされており、別のコンピュータ上の別のプログラムがこの関数を呼び出す必要がある場合は、次のステートメントを使用できます。 'デモ.exe';
ファイル:
//File キーワードはファイル操作タイプを示します。 //Of とファイル タイプが File の後に追加される場合、ファイルは指定されたタイプのデータの読み取りと書き込みを定義できます。 PName: 文字列[ 32]; PAge: 整数; var PFile: Tperson のファイル;
終了処理:
//ファイナライズ キーワードは、ユニットが解放されるときに呼び出されるメソッドを識別します。 //通常、自動的に解放できないユニット内のオブジェクトを解放します。 //最も一般的に使用されるファイナライズの場合は使用されません。 -OLE オブジェクトを初期化します。初期化 ActiveX.OleInitialize(nil); 終了処理 ActiveX.OleUninitialize;
ついに:
//finally キーワードは、例外処理で呼び出す必要がある最後のメソッドを示します。 //finally の後のステートメントは、try ステートメントの最後に実行されます。 .Text := Node.Text;finally Node := nil;end;
のために:
//For キーワードは、指定された数のループを実行するために使用される For ループ構造につながります。 for i := 1 to 100 dosum := sum + i;// ループ変数が減少する場合は、 i の DownTo キーワード: = 100 downto 1 do Inc(sum);
フォワード:
//Forward キーワードはメソッドの前方定義に使用されます。メソッド宣言のみを定義し、その後プログラムでメソッドを実装します。 //これにより、コードが読みやすくなり、すべての宣言をまとめることができます。すべての実装をまとめます。 function X(i: Integer): Integer; forward;procedure Y(s: string); forward;...function X;begin Result := i * 2;end;procedure Y;beginWriteLn(s);end;//Forward 事前に宣言されたメソッドは、実装時にメソッドのパラメータと戻り値を入力する必要はなく、メソッド名を直接使用するだけです。
関数:
//関数は関数の宣言に使用されます。 function 関数名については、パラメーターと戻り値の型を指定するだけで、後で特定の関数名をバインドできます。
後藤:
//Goto ステートメントは行番号にジャンプするために使用され、現在の構造レイヤー内の任意の位置にジャンプできます。 //Goto ステートメントが破棄されるため、行番号は宣言時に label キーワードで宣言する必要があります。 .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');終了;
もし:
//If キーワードは条件を判断するために使用される If 条件文につながります。var a,b: Integer;begin a := 2 b := 3; if a>b then WriteLn('a=' + IntToStr() a )) else WriteLn('b=' + IntToStr(b));end;//If ステートメントの通常の構造は If...Then...else ですが、else ステートメントはオプションです。// If ステートメント内の任意の複数のサブステートメント、次に、begin...End 構造体を使用して if a > b thenbegin WriteLn('a=' + IntToStr(a)); を使用する必要があります。 b) );Endelse WriteLn('b>a');
実装:
//Implementation はユニット内の実装部分を識別します。ユニットの基本構造は ://Unit...Interface...implementation...end です。//関数本体、プロセス本体などはその後に記述する必要があります。実装キーワード。/ /オブジェクトが実装後に参照される場合、オブジェクトは非公開であり、実装では frmAbout;begin FormAbout.Show;end;//完全なユニットには実装が必要です。一部。
実装します:
//この時点で、プロパティがインターフェイス オブジェクトに変換されることを示します。 //インターフェイスを介したプロパティの動的バインドとプロパティ値の動的設定 type IMyInterface = インターフェイス プロシージャ P1;プロシージャ P2; 終了; TMyImplclass = クラス プロシージャ P2; FMyImplClass: TMyImplClass; FMyImplclassimplements IMyInterface;procedure IMyInterface.P1 = MyP1;procedure MyP1;//implements による宣言の後、上記の例のように、クラスの宣言時にメソッドのエンティティを指定できます。 P1 = MyP1;
で:
//In は、セットに要素が含まれているかどうかを判定するために使用されます。判定される内容は、単一のセット要素とセットのインスタンスである必要があります。 type TCol = (cA,cB,cC); TCols = TCol;var Cols: TCols;begin Cols := [cA,cB]; if cA in Cols then ShowMessage('cA in Cols') else ShowMessage('cA not in Cols');end;//In はプロジェクト ファイルでも使用されます。ファイルがプロジェクトによって参照されているかどうかを識別するために使用されます。 //In は、コレクション内の要素をループアウトするために使用できます。 .. for s では、sl do begin ShowMessage(s); end;end;
索引:
//Index は、同じ属性メソッド (Get、Set) を使用して異なる属性を操作できるように、属性内のシリアル番号を識別するために使用されます。 type TForm1 = class(TForm) private function GetInfo(const Index: Integer): Longint ; プロシージャ SetInfo (const インデックス: 整数; const 値: Longint); パブリック プロパティ iLeft:Longint インデックス 0 読み取り GetInfo 書き込み SetInfo; プロパティ iTop:Longint インデックス 1 読み取りGetInfo 書き込み SetInfo; プロパティ iWidth:Longint インデックス 2 GetInfo 書き込み SetInfo; プロパティ iHeight:Longint インデックス 3 読み取り GetInfo 書き込み SetInfo; 関数 TForm1.GetInfo(const Index: Integer): Longint;begin case インデックス 0: 結果 := self.Left; 1: 結果 := self.Top; 2: 結果 := self.Width; := self.Height; end;end;//Index キーワードは、プロパティ内の複数の要素を示すためにも使用されます。例: property Selected[Index: Integer]: Boolean read GetSelected write SetSelected;
継承:
//Inherited は親クラスのメソッドの呼び出しに使用されます。type TDemo = class(TComponent) public constructionor Create(AOwner: TComponent); end;constructor TDemo.Create(AOwner: TComponent);begin generated Create(AOwner);end ; //それ自体と同じ名前のメソッドを呼び出す場合は、たとえば上記の例で継承したメソッド名とパラメータを省略することもできます。 Create(AOwner);//次のように変更できます:Inherited;
初期化:
//初期化キーワードは、ユニットのロード時に呼び出されるメソッドを識別します。 //通常、これは自動的に初期化できない一部のオブジェクトを初期化するために使用されますが、 //最も一般的に使用されるケースではありません。初期化は、OLE オブジェクトを初期化することです。 OleInitialize(nil);finalization ActiveX.OleUninitialize;
列をなして:
// InLine キーワードは Asm またはアセンブラ構造で使用されます。 // アセンブリ ステートメントが下位互換性があることを示すために使用されます。 function IntToStr(Value: Integer): string; asm インライン; 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 ESIend;
インタフェース:
//Interface はユニット内のインターフェース部分を識別します。ユニットの基本構造は、://Unit...Interface...implementation...end です。//関数、プロシージャなどの宣言は、その後に記述する必要があります。 Interface キーワード。/ /オブジェクトがインターフェイスの後に参照される場合、オブジェクトにはインスタンスがないため、使用時にインスタンス化する必要があります。インターフェイスは frmAbout;var FAbout: TFormAbout;begin FAbout := TFormAbout.Create(Self); を使用します。 FAbout.Show;end;//完全なユニットにはインターフェイス部分が必要です。//インターフェイスはインターフェイスの宣言としても使用できます。type IMalloc =interface(IInterface) ['{00000002-0000-0000-C000-000000000046 }'] 関数 Alloc(サイズ: 整数): ポインター; stdcall 関数 Realloc(P: ポインター; サイズ:整数): ポインタ; 関数 GetSize(P: ポインタ); 関数 stdcall;
は:
//Is キーワードはオブジェクト判定に使用される場合もあります。var Comp: TComponent;begin ... if Comp Is TEdit then (Comp as TEdit).Text := 'Edit ' ;終わり;
ラベル:
//label キーワードは、Goto をステアリングに使用できるように行番号ラベルを宣言するために使用されます。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 キーワードは、プロジェクトがクラス ライブラリであることを示すために使用されます。クラス ライブラリは、EdInit、EdInOut、EdFormat、EdPrint のエクスポートを使用してコンパイル後に DLL ファイルを生成します。 name 完了、InsertText 名 Insert 、DeleteSelection 名 Delete、FormatSelection、PrintSelection 名 Print、SetErrorHandler;begin InitLibrary;end。
メッセージ:
//Message キーワードは、メッセージ メソッドを宣言するために使用されます。 //Message を含むメソッドは、受信したメッセージのタイプを示し、そのメッセージを処理用の参照によってメソッドに渡す必要があります。 Refresh(var Msg: TMessageRecordtype); Refresh(var Msg: TMessageRecordtype);beginif Chr(Msg.Code) = #13 then...elseinherited;end;//ユーザーはメッセージをカスタマイズできます。カスタム メッセージは、メッセージおよびトリガー イベントによって受信することもできます。
モジュール:
//Mod は 2 つの数値の整数の剰余、つまり剰余を求めるために使用されます。Mod 演算で使用される 2 つの値は両方とも整数でなければならず、演算の結果も整数でなければなりません。 , b, c: 整数 a := 20; c := a mod b;
名前:
//Name キーワードはメソッドのエイリアスを示すために使用されます。 // 外部から参照されるメソッドの場合、外部プログラムがメソッドのエンティティ コンテンツを変更するのを防ぐために、Name を使用してメソッド エイリアスを適用することをお勧めします。 //外部からメソッドを参照する場合、メソッドにエイリアスがある場合は、Name で識別する必要があります。 function MessageBox(HWnd: Integer; Text, Caption: PChar; Flags: Integer): Integer 'user32; .dll' 名前 'MessageBoxA';
近く:
//Near は関数呼び出しプロトコルを示し、関数がローカルで呼び出せることを示します。 //他のプログラムは、関数 Add(a,b: Integer): Integer の形式で関数を呼び出すことができます。 ; Near;//このプログラムが Demo.exe にコンパイルされ、別のローカル プログラムがこの関数を呼び出す必要がある場合は、次のステートメントを使用できます。 'デモ.exe';
なし:
//Nil は null ポインター、またはインスタンスのないオブジェクトを表すために使用されますが、Node <> nil dobegin ListBox1.Items.Add(Node.Text); end;
ノードデフォルト:
//NoDefault キーワードは、プロパティが通常、継承で使用されるデフォルト値を許可しないことを示します。 type TClassA = class private fValue: Integer; public property Value: Integer read fValue write fValue default 0; TClassA )published property Value:Integer read fValue write fValue nodefault;//上記の例からわかるように、TClassA の Value のデフォルト値は 0 です。 //TClassB は TClassA を継承するため、デフォルト値も継承します。ここでデフォルト値を削除するには NoDefault を使用します。
ない:
//Not は否定に使用され、元の結果を否定します。例: if a > b then//次のように記述できます: if not (a < b) then//Not キーワードは通常、ブール値を切り替えるために使用されます。属性プロシージャ Button1Click (Sender: TObject);begin StatusBar1.Visible := not StatusBar1.Visible;end;
物体:
//Object はオブジェクトの宣言に使用されます。このオブジェクトは任意であり、後方互換性があります。 //オブジェクトの宣言方法は、クラスの宣言方法と同じです。 object end; ODemoB = object(ODemoA) end;//Object キーワードは、次のように動的関数またはプロシージャを宣言するためにも使用されます。 ) のobject;//object によって宣言された関数またはプロシージャは、指定された関数本体に動的にバインドすることも、コントロール イベントにバインドすることもできます。
の:
//Of キーは、他のキーワードとともに指定された構造を形成するために使用されます。Of は、Case、Class、Array、File、Set、Object とともに使用できます。 //Case Tag Of 0: Result := 'a'; : Result := 'b';end;//クラス ステートメント: type TDemo = TComponent のクラス;//配列構造: var MyInt: 整数の配列;//ファイル構造: var MyFile: ファイルByte;//Set ステートメント: type TCol = (cA,cB,cC); TCols = TCol のセット;//Object 構造: type MyFun = function(I: Integer): オブジェクトの整数;
の上:
//On キーワードは、例外処理、発生した例外の指摘、および例外情報の取得に使用されます。
または:
//1. 論理和を表現する if (a>0) or (b>0) then//2. ビット演算を表現する vara,b,c: Integer;beginc := (a or b);end;//Or を使用するロジックを表現するときは、条件との競合を避けるために、Or の周りの式を括弧で囲む必要があります。 //条件文で Or を使用すると、エディターはユーザーが Or で何をしているのかを認識できません。例: if a>0 or。 b>0 then//コンパイラはこれを次のように理解します: if a>(0 or b)>0 then//または if (a>0) or (b>0) then//しかし、実際にコンパイルすると、コンパイラは競合を生成します。 、エラーを報告します //最初のものには a>b>c という形式が含まれている可能性がありますが、これは Delphi ではサポートされていません //したがって、Or 演算子を使用するときは、左右の条件を区別するために括弧を使用する必要があります。//ビットを示します演算を行う場合も括弧を追加する必要があります。 Or と左右のパラメータを囲みます。
外:
//Out キーワードはメソッド パラメータの出力メソッドを記述します。 //Out は var とは異なります。はパラメータを返します。var はプロシージャに直接入力されるパラメータのアドレスです。 TForm1.Button1Click(Sender: TObject);var i: 整数; s: 開始 i := 20; s := 'xxx';
過負荷:
//Overload キーワードは、オーバーロードのメソッドを示します。オーバーロードとは、メソッド名は同じですが、パラメータの数、型、順序が異なることを意味します。この条件が満たされると、関数 X(i. : 整数): 文字列; オーバーロード;関数 オーバーロードの要件を満たす必要があります。type TDemo = class(TComponent) public process CreateWnd(AOwner: TWinControl); overload; //上記の例と同様、サブクラスが所有するメソッドは次のとおりです。procedure CreateWnd(AOwner: TWinControl); {サブクラス宣言 }//CreateWnd メソッドは 2 つあります。//オーバーロードを使用しない場合は、親クラスのメソッドをサブクラスでオーバーライドできます。
オーバーライド:
//オーバーライドは、仮想または動的の形式でメソッドをオーバーライドするために使用されます。 //オーバーライドする場合、オーバーライドされるメソッドの宣言を使用する必要があり、元のメソッドのパラメーターと戻り値の型は変更できません。 Create(AOwner: TComponent); /Override は主に継承に使用され、親クラスのメソッドをオーバーライドします。 //上記の例のように、サブクラスが所有するメソッドは次のとおりです:procedure X; {親クラスからオーバーライドされました}//親クラスが所有するメソッドは次のとおりです:procedure Statement、//またはパラメータを変更する必要がある場合は、キーワードを再導入します。
パッケージ:
//Package キーワードは、プロジェクトがコントロール ライブラリであることを示すために使用されます。 //コントロール ライブラリは、コンパイル後に BPL ファイルを生成します。これは、コントロールを将来の開発で使用できるように、Delphi コントロール ライブラリにインストールできます。 ; rtl、clx が必要です ; 'C:/MyProject/MyUnit.pas' に MyUnit が含まれています。
梱包:
//Packed キーワードは構造体レコードまたは配列をパックするために使用され、パックされたオブジェクトのサイズを大幅に削減できます。 PChar;
パスカル:
//Pascal は関数呼び出しプロトコルをマークします。 // 呼び出し時に関数が Pascal に従うことを示します。つまり、最初にすべての変数を初期化します。 // 関数 X (i: 整数) によって引き起こされるエラーを回避します。 ): 整数; パスカル; 結果 := i * 2; 終了;
プライベート:
//Private は、クラス内の要素のアクセス権限を区別することを示します。Private で区別される要素は、このクラス内でのみアクセスできます。
手順:
//プロシージャはプロシージャを宣言するために使用されます。procedure パラメータを指定するだけで、後で特定のプロシージャ名をバインドできます。
プログラム:
//プログラム キーワードは、プロジェクトがアプリケーションであることを示すために使用されます。exe ファイルは、制御ライブラリのコンパイル後に生成され、プログラムを直接実行できます。 Project1;uses Forms, Unit1 in 'Unit1.pas';{$R *.res} application.initialize.createform(tform1、form1);
財産:
//プロパティのキーワードは、公開されたプロパティと、公開されたアクセス分離のみで宣言されているため、使用されます:統合されたプロパティ値:fvalue falueの読み取り。 (送信者:tobject)tdemo = private fevent:tontexchange:tontextchange
保護:
//保護されているクラス内の要素のアクセス許可は、このクラスとそのサブクラス内でのみアクセスできます。
公共:
// publicは、クラス内の要素のアクセスの違いを示しています。
公開:
//公開されたクラス内の要素のアクセス許可は、公開されている任意のRTTIオブジェクトによってアクセスできます。オブジェクトビューアー。
上げる:
//レイズステートメントは、例外をスローするために使用されます。 :string; <0の場合は、excement.create( 'integerは0より小さくできません'); strtoint(s); eを除く:例外は例外を上げます。create(e.message); end;
読む:
// readは、プロパティの読み取りに使用されるメンバーまたはメソッドを識別します。
Readonly:
// readonlyキーワードは、オブジェクトが読み取り専用かどうかを識別するために使用されます。propertyreadonly; // readonlyがtrueに設定されている場合、ユーザーはプロパティを手動で変更することができず、他のオブジェクトを介してのみ動作できます。
記録:
//レコードキーワードは、構造レコードを宣言するために使用されます; 終わり ;
登録する:
//登録は、関数が後方互換である場合、レジストリにレコードを残すことができることを示しますコントロールライブラリまたはIDE.Procedure Registerを使用したコントロールまたはエキスパートツールを登録します。
再導入:
//継承する場合は、メソッドを再発行するために再導入されます。 。整数);
繰り返す:
//リピートループ構造を導入するために使用されますsum:= sum + i; inc(i> = 100);
必要:
//必要な条件が満たされていない場合、キーワードは必要な条件を指摘します。
Resourcestring:
//リソースの文字列を宣言します「Borland Rocks」;
safecall:
// safecallは、comが呼び出す関数がコンパイル時に順守することを規定する一種の関数契約です。 ; //編集後:手順X(S:パンシストリング);
セット:
//キーワードは、inなどのセット演算子を使用できるようにするために使用されます操作中にコレクション要素を追加または削除しますvar cols:tcols; begin cols:= cols + [ca、cb]; end;
SHL:
// SHLは、左にシフトすることを意味します。
SHR:
// SHは、右にシフトすることを意味します。
stdcall:
// stdcallは、プログラムが順守することができる機能を規定する一種の契約ですCallee Calling Function:function x(i:integer):integer;整数):integer;
保存:
//保存されているのは、プロパティの値を指定することができるかどうかを示します。
弦:
//文字列はデータ型であり、string.var str:stringを表します。
それから:
// IFステートメントでキーワードが使用されます。その後のステートメントは実行されます。 ); 終わり;
Threadvar:
// Threadvarは、スレッドが開始するときに作成された変数を識別します''; // s:= '';
に:
// forステートメントでキーワードを使用して、ループ変数がIncrementedであることを示します。ループ変数単語をインクリメントするために使用し、ダウンまでのキーワードを使用して減少します。
試す:
// TRYステートメントは、例外を引き起こす可能性のあるステートメントに使用されます。
タイプ:
//キーワードは、タイプTDEMO = Class Endで宣言されたさまざまなオブジェクトを宣言します。 CA、CB、CC);
ユニット:
//ユニットのユニットの基本構造は、ユニット...インターフェイス... end.unitユニット1;インターフェイスを使用します。始まり。
それまで:
//キーワードは、リピートループ構造のループ条件を決定するために使用されます。 = sum + i; inc(i);
用途:
//外部ユニットを参照し、通常、インターフェイスのインターフェースを使用します。
var:
// varキーワードは変数またはオブジェクトを宣言し、var i:integerに渡されます。 (var i:integer):整数; //上記の関数のパラメーターIは参照によって渡され、関数が実行されたときにその値を変更でき、呼び出し関数に戻します。
varargs:
// varargは、CDECLキーワードと組み合わせて使用する必要がありますコードはC ++クラスライブラリからのもので、printf関数が参照され、参照によりパラメーターを渡すことができます。
バーチャル:
//仮想メソッドを宣言するために使用されます。
その間:
//キーワードはループステートメントを導入しますが、ループ条件が正しい場合、ループが実行されます。 inc(i); end;
と:
//キーワードを使用して、同じオブジェクトを収集します。 append( 'def');コンテンツをクリップボードコードにコピーすることは非常に冗長であるように思えます:form1.memo1.lines.clear; form1.memo1.lines.append( 'abc'); form1.memo1.lines.append( 'def'); form1.memo1。 lines.savetofile( 'c:/demo.txt');
書く:
//プロパティで使用されるメンバーまたはメソッドを識別するために使用されます。
writeonly:
// writeonlyキーワードは、オブジェクトがwriteのみであるかどうかを識別するために使用されます。
xor:
// XORは排他的に使用されますxor b then writeln( 'a xor b')else writeln( 'a not xor b');