アプリケーションを作るとき、コンポーネントなどの名前が、デフォルトの Form1 とか Button1 のままだと、コードの可読性がいまいち
たとえば pushButton とか、意味をもたせたいですよね
でも、ある程度作ってからだと、修正がめんどくさいなぁ... と思った貴方
痒いところに手が届く仕組みが IDE には用意されています
その1 オブジェクトインスペクタを使う
設計画面のオブジェクトインスペクタで、対象のコンポーネントを選択して、name プロパティの値を変更します
この操作で何が変わるかというと
- 宣言されている名称が変わる
- イベントの名称が変わる
しかし、自身で記述したコードの箇所は変わってくれない
なので、このやり方の使いどころは、画面設計を行っているとき、詳細なコードを書き始める前ですね
簡単な例で確認してみます (FireMonkey で作っていますが VCL でも同様です)
単純にフォームにボタンを1つ貼り、ボタンの Click イベントにクリックされたら、ボタン上に表示されている文字が変わるというコードを書いたプロジェクトがあります
設計画面のオブジェクトインスペクタ上で Button1 の Name プロパティの値を Button1 から pushButton に書き換えます
Before
After
コード側はどうなるかを見てみましょう
Before
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.Controls.Presentation, FMX.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private 宣言 }
public
{ public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Text := '押したよ';
end;
end.
After
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.Controls.Presentation, FMX.StdCtrls;
type
TForm1 = class(TForm)
pushButton: TButton; // <<<---- 修正される
procedure pushButtonClick(Sender: TObject); // <<<---- 修正される
private
{ private 宣言 }
public
{ public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.pushButtonClick(Sender: TObject); // <<<---- 修正される
begin
Button1.Text := '押したよ'; // <<<---- ここは変わらない
end;
end.
その2 リファクタリング機能を使う
IDE にはリファクタリングという「コードによる目的の動作を変えずに、コードを再構成し、変更するために使用する技術」が備わっています
ここでは「名前のリファクタリング」の手順を紹介します
名前のリファクタリングの手順です
コード上で対象となる名前を選択して、マウスを右クリックし、「リファクタリング| xx の名前変更」を選びます
ダイアログが現れますので、新しい名前を設定して [OK] ボタンをクリックします
左上のルービックキューブのようなアイコンをクリックすると名称の変換が行われます
変換後のコードを見てみましょう (設計画面側は、その1と同じなので省略)
After
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.Controls.Presentation, FMX.StdCtrls;
type
TForm1 = class(TForm)
pushButton: TButton; // <<<---- 修正される
procedure pushButtonClick(Sender: TObject); // <<<---- 修正される
private
{ private 宣言 }
public
{ public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.pushButtonClick(Sender: TObject); // <<<---- 修正される
begin
pushButton.Text := '押したよ'; // <<<---- 修正される
end;
end.
おわりに
名前のリファクタリング機能ですが、若干制限がありますので注意ください
Delphi の場合は、ジェネリックスの型パラメータの名前は変更できないという制限があります