Delphi10からやりなおすメモ
Suns & Moon Laboratory
Delphi memoとちょっと分けて書いてみる
見出しの右側についてるD10は、書いたときのDelphiバージョン
classの書き方 D10
type
  Tclassname = class(TObject)
  public
    constructor Create;
    destructor Destroy; override;
  end;
クラス名の先頭はTを付ける。Tじゃなくても良いけど、慣例でそうなってる。
Tだと名前かぶってやだなーという時は、IndyみたいにTIdClassnameみたいに、Txxを長くすると良いかも。
コンストラクタはCreateを使う。
デストラクタはDestroyを使い、overrideする。
overrideするのは、TObjectで定義されているため、override指定しないとwarningになる。
Freeを定義しないの?とか思うけれど、Destroyを使う。
Freeは、オブジェクトがnilでないならデストラクタ(destroy)実行するようになっている。
ARC D10
モバイルアプリ開発時、オブジェクトの解放(Free)は記述しない。
デストラクタを明示的に実行したい場合は、DisposeOfを使う。
Windowsのクラスに関しては、D10の時点ではARC非対応。
Windowsアプリ開発、今後のコーディング方針はこんな感じか...
Freeはいままで通り記述。
デストラクタでファイルCloseやDB切断処理ある場合は、Freeを使わず、DisposeOfを使用する。
ARC必読
これが一番詳しい
モバイル開発のためのDelphi言語 2013年4月 Marco Cantu
ARCの動作概要
オブジェクトを変数に代入した時、参照カウント変更。
スコープ外に出たとき、参照カウント変更。
既存コードの動作
ARC下で、FreeとFreeAndNilは、期待した箇所でデストラクタが実行されなくなる可能性がある。
ファイルのクローズの様に、期待した位置で確実にデストラクタを実行したい時は、DisposeOfを使う。
Free
D10ソースを見ると、ARC下でFree自体は何も処理をしなくなる。
最終的には、スコープを抜け、参照カウントがゼロになった時に破棄される。
FreeAndNil
変数にnilを代入する事により、参照カウントが変更される。
DisposeOf
ARCで導入されたメソッド
非ARC下では、Freeが呼び出される。
ARCメモ
Delphi モバイル コンパイラでの自動参照カウント
これまで、Delphi デスクトップ コンパイラ(DCC32、DCC64、DCCOSX)では、インターフェイス、動的配列、文字列の ARC をサポートしてきました
(インターフェイスの ARC は Delphi 3 で導入され、文字列については AnsiString が Delphi 2 で導入)。
現在、Delphi モバイル コンパイラには、クラスの自動参照カウントが導入されています。
ドキュメントコメント D10
XML ドキュメント コメント
簡単に入力する方法無いみたいなので、コードテンプレートを登録。
ライブ テンプレートを作成する
コードテンプレート例
登録して、Ctrl+J xml enterと打てば、テンプレートが表示され、TABで変更項目をジャンプします。
<?xml version="1.0" encoding="utf-8" ?>
<codetemplate	xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
				version="1.0.0">
    <template name="xml_document" invoke="manual">
		 <description>
			Create a XML Document
		 </description>
        <author>
			Embarcadero
		</author>
		 <point name="Summary">
			 <text>
				 要約
			 </text>
			 <hint>
                 対象となる関数またはクラスの要約です。
			 </hint>
		 </point>
		 <point name="ParamName">
			 <text>
				 パラメータ名
			 </text>
			 <hint>
                 パラメータの名前
			 </hint>
		 </point>
		 <point name="ParamDescription">
			 <text>
				 パラメータ説明
			 </text>
			 <hint>
                 パラメータの説明
			 </hint>
		 </point>
		 <point name="remarks">
			 <text>
				 備考
			 </text>
			 <hint>
			   対象となる関数またはクラスに関する備考です。
			 </hint>
		 </point>
		 <point name="returns">
			 <text>
				 戻り値の説明
			 </text>
			 <hint>
			   対象となる関数の戻り値の説明です。 たとえば、関数がエラー コードを返す場合もあるでしょう。
			 </hint>
		 </point>
		 <code language="Delphi" context="methodbody" delimiter="|"><![CDATA[
///<summary>|Summary|
///</summary>
///<param name="|ParamName|">|ParamDescription|
///</param>
///<remarks>|remarks|
///</remarks>
///<returns>|returns|
/// </returns>
|end|]]>
		 </code>
	</template>
</codetemplate>
ライブテンプレート
Ctrl+Jを入力してから、forとか入力すると、コードテンプレートが表示される。
ヘルプインサイト
マウスカーソルを合わせるか、Ctrl+Shift+Hを押す。
http://docwiki.embarcadero.com/RADStudio/Seattle/ja/%EF%BC%BB%E3%83%98%E3%83%AB%E3%83%97_%E3%82%A4%E3%83%B3%E3%82%B5%E3%82%A4%E3%83%88%EF%BC%BD
2024-08-14 11:00:25 32400