[DELPHI] フォームにプロパティを追加する
トップページへ
用途は少ないかもしれませんが、フォームにプロパティを追加する場合の覚え書きです。
なお、Delphi(楽天市場で探す ・ amazonで探す)のバージョンによっては見た目、動作に違いが出る可能性があります。また参考にされる場合は自己責任でお願いします。
1. プロパティなので Public宣言 に記述します。
public { Public 宣言 } end;
2. ここでは UserDir (String型) という名称のプロパティを追加します。もちろん Integer など名称は型は自由に宣言できます。
public { Public 宣言 } property UserDir: String; end;
3. 画像のように UserDir のある行の上で右クリックすると、「カーソル位置のクラスを補完」と表示されるのでそれをクリック
タップ(クリック)で拡大します
4. するとソースコードの末尾に SetUserDir(const Value: String) 手続きが追加され、さらにPrivate宣言とPublic宣言にUserDirに対する指定子「read/write」が追加されます。
procedure TForm1.SetUserDir(const Value: String); begin FUserDir := Value; end; end.
private FUserDir: String; procedure SetUserDir(const Value: String); { Private 宣言 } public { Public 宣言 } property UserDir: String read FUserDir write SetUserDir; end;
5. FUserDir という名称を GetUserDir に変えます。
public { Public 宣言 } property UserDir: String read GetUserDir write SetUserDir; end;
6. 文字列 GetUserDir の中で右クリックして、再度「カーソル位置のクラスを補完」をクリック
7. ソースコードに GetUserDir という関数が追加され、Private宣言にも追加されます。
private FUserDir: String; procedure SetUserDir(const Value: String); function GetUserDir: String; { Private 宣言 } public ... function TForm1.GetUserDir: String; begin end;
8. GetUserDir関数に Result := Self.FUserDir; を追加します。
function TForm1.GetUserDir: String; begin Result := Self.FUserDir; end;
以上で終わりです。
最終的に下記のようになっていれば、フォームにプロパティを追加することができました。
private { Private 宣言 } FUserDir: String; procedure SetUserDir(const Value: String); function GetUserDir: String; public { Public 宣言 } property UserDir: String read GetUserDir write SetUserDir; end; ... function TForm1.GetUserDir: String; begin Result := Self.FUserDir; end; procedure TForm1.SetUserDir(const Value: String); begin FUserDir := Value; end;
プロパティの用途は
フォーム上に表示する必要がないものの、フォームに関連した変数を定義する必要がある場合です。
また、メリットとして
Form1.u
と入力すれば UserDir が補完リストに表示される点です。
※エディタで「コード補完」が有効の時です。
この記事の作業が面倒ならば、変数をPrivateかPublicで宣言すれば代用できます。