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