執筆の目的
この仕様は、プログラムの作成プロセスに関係するプログラム ファイルとコーディング スタイルを定義します。この仕様は Delphi 言語に基づいて開発されています。
プロジェクト文書の構成
Delphi では、プログラム ファイルはプロジェクト単位に従って編成されます。一般的なプロジェクトには次のものが含まれます。
プロジェクト ファイル (.DRP ファイル)
プロジェクトのメイン プログラムの Pascal ソース コードが含まれています。
ユニットファイル (.PAS ファイル)
プロジェクト内の各フォームの Pascal ソース ファイル。フォームのすべての宣言とプロシージャ (時間処理プロシージャを含む) が含まれます。
フォームファイル (.DFM ファイル)
フォームのデザイン プロパティを含むバイナリ ファイル。各フォームの .DFM ファイルと .PAS ファイルは相互に対応しています。
リソース ファイル (.RES ファイル)
アプリケーションの実行可能ファイルにリンクされるコンパイル済みバイナリ リソース ファイル。
プロジェクト オプション ファイル (.DOF ファイル)
PProject|Options メニュー コマンドで設定されたプロジェクト オプションを保存します。
デスクトップ設定ファイル (.DSK ファイル)
[ツール] | [オプション] メニュー コマンドで設定されたデスクトップ オプションを保存します。
パッケージファイル(.DPK/.BPLファイル)
コンポーネント、クラス、データ、コードを共有するために使用されるファイル。ソース ファイルは .DPK ファイルで、コンパイル後は .BPL ファイルになります。
定数の定義
コンテンツ:
論理値の定義。
定数値の定義;
エラーコードの定義;
形式: 1 行に 1 つの定義。次のように:
Const<定数>: タイプ = 値; // コメント
例証します:
Const ステートメントを使用して、リテラル値の代わりに使用される定数を宣言します。
例: Const C_SQL:string='T_CD_USER から CH_USERER_ID を選択' // ユーザー ID を問い合わせる
Const C_PI:real =3.1415926;
構造体の型の定義
内容: 構造体の型定義
形式:
タイプ
<型名>//構造説明コメント
<変数名1>: 変数の種類 //変数の説明コメント;
<変数名2>: 変数の種類 //変数の説明コメント;
…
終わり;
例証します:
<型名>は大文字で始まる文字列です。構造定義内の変数の型を定義するステートメントは、2 行目の 5 列目から始まります。
例:
タイプ
TableList=record //システムツリーのユニットタイプ定義
InID: 整数; //ユニット番号;
名前: 文字列 // ユニット名;
PID: 文字列; //前のユニット名
PT: PTableList //次のユニットタイプへのポインタ
終わり;
プログラミングスタイル
プログラミング スタイルでは、プログラム内の各ステートメントとコメントの配置規則を指定します。
関数/手続きのスタイル
<関数/プロシージャ> 名前 (変数: 変数タイプ [,...]);//関数/プロシージャの説明
変数
変数 1: 変数の種類 // 変数の説明。
変数 2: 変数の種類 //変数の説明。
…
始める
声明;
声明;
…
終わり ;
注: 変数の宣言とステートメントは 3 列目から記述されます。インデントがある場合は、2 列ずつインデントし、対応するステートメントと揃えます。
ステートメントスタイル
例証します:
通常、プログラム本体の最大 10 行ごとに 1 つの段落関数の記述があります。
さまざまなステートメントの使用を標準化します。
ステートメント内のインデントは 2 列単位です。
変数定義ステートメント
変数
var_name: <データ型>;
代入文
var_name: = <式>;
条件文
if 条件 then // コメント
始める
声明;
…
終わり
else if 条件 then// コメント
始める
声明;
...
終わり
それ以外//コメント
声明;
注: 実行ステートメントが 1 つだけの場合、begin ステートメントと end ステートメントは省略できます。
ループステートメント
//ループ関数のアノテーション
カウンタの場合 := 開始から終了まで do
始める
[声明];
…
終わり;
//ループ関数のアノテーション
while [条件] を実行します
始める
[声明];
…
終わり;
//ループ関数のアノテーション
繰り返す
[声明];
…
[条件]まで
switch ステートメント
//スイッチ関数の説明
case <式> の
<値1>:[ステートメント1];
<値2>:[ステートメント2];
…
<値n>: [ステートメントn]
終わり;
コメント行
プログラムコードユニットファイルの先頭には、このユニットファイルに対する「モジュールの説明」と「ユニットの説明」のコメントが必要です。
定数、構造型、関数/プロシージャ、カスタム変数、コードセグメント関数ブロック、キーステートメントなどの意味のあるコード部分の場合。
ポイントについては、詳細を説明するコメント行が必要です。
コメント行は、説明が必要な行の後に「//XXXXXXXX」で追加することも、説明が必要な行の上に追加することもできます。
「{XXXXXXXX}」を使用して複数行を追加するか、「//XXXXXXXX」を使用して単一行を追加します。
ファイルとフォームの名前付け
意味 クラス名の命名形式
プロジェクトファイル プログラム(.DPR) XXXXX
ユニットユニット(PAS) uXXXXX
フォームフォーム.名前(.DFM) XXXXXFrm
データモジュールDataModule XXXXXDM
ユニットヘッダー定義。各ユニットの前に追加されます。
{************************************************ * ***
ユニット名:
機能の説明:
著者:
ソフトウェア名:
バージョン:
会社名:Sword as Dream Software Creation Studio
************************************************* * *** }
ソフトウェアのバージョン番号形式の定義:
ソフトウェアでは、次のバージョン番号形式が使用されます: XXXX
例: リリース可能なプログラムが完成すると、バージョン番号は「1.0.0.0」とマークされます。
最初の桁: バージョン番号。注: これは、大幅に改良されたソフトウェアのバージョンです。
2桁目:メンテナンス番号。注: 一部のエラーは既存のバージョンに基づいて変更されています。
3 桁目: パッチ番号。注: プログラムがいくつかのエラーを修正し、新しい保守番号が形成されない場合は、パッチ番号が使用されます。
4桁目:補正番号。注: 緊急プログラムエラーが発生した場合、修正されたプログラムは、リリースされたプログラムのバージョン番号としてではなく、識別子として使用されます。やくざ