ながーい手続きの途中で変数を宣言したい!

これまでながーい手続きを書いていて、変数を宣言する必要がある時はいつもShift+Ctrl+1(数字は任意)でその行へすぐに戻れるように「しおり」を設定してから、手続きの最初までスクロール、Var宣言部に変数を追加、Ctrl+1(数字は任意)で編集中の行に戻ることを繰り返してきました。

いちいち、ここへ戻るのはめんどくさい!


きっと、Var宣言部に戻らなくても、その場所で変数を宣言できるショートカットキーがあるんだろうーなーって、ずうぅぅぅぅぅぅっと思っていたんだけれど、Delphi 12.0 をインストールした際に、今まで入れてなかったHelpもインストールしたので、入れた以上は使わなきゃ!と、

メニューのヘルプ ⇨ RAD Studio ヘルプ ⇨ メインヘルプ ⇨ 検索キーワード「ショートカットキー」で検索 ⇨ メインショートカット ⇨ デフォルトのキーボードショートカットとたどって(なが!)、大量にあるショートカットキーの項目を一つずつ上から下へ丹念に探します。すると・・・

あった!

Shift+Ctrl+V 
 [リファクタリング|変数の宣言...](Delphi のみ) 
 [新規変数の宣言]ウィンドウが開き、手続き内にローカル変数を宣言することができます。(上記ヘルプより引用)

これです。コレ!
やっぱり、ありました☆

【やってみた】

ある既存の手続きのいちばん最後にMessageBox関数でメッセージを表示するコードを追加します。この関数で使用する文字列型変数が strMsg ですが、まだ変数として宣言していないので、書いた途端に次のように注意の表示?が出ます。

文字列型変数として宣言したいstrMsgは、書いた途端に赤い波線と!マークが付く


構造ペインには・・・


もちろん、実行(F9)できません!

未定義の識別子エラーに加えて、「致命的エラー」という文言も登場


コンパイル結果の案内も!

Delphiのこういうところが大好き!
ここを確実に乗り越えて行けば、エラーの発生しないプログラムになる☆


とりあえず、strMsgを書いた行にカーソル(キャレット?)を置いて、Shift+Ctrl+V してみましたが・・・

(変化なし。なんにも起きない。なんでかなー?)

再挑戦。今度は str と Msg の間をクリックして、そこにカーソル(キャレット?)を表示しておいて(str|Msgみたいな)、んで、覚えたばかりの Shift+Ctrl+V を実行。すると・・・ (ここは strMsg を選択状態にしておいて Shift+Ctrl+V しても同じ)。

(なんか出た!!)

望み通り種類は「文字列」だから、迷わず「OK」をクリック
(望み通りでない場合は、ここで型を指定)


で、「OK」をクリックしたら、未定義の識別子を示す赤い波線が消えた!

Var宣言部へ行って見ると・・・

文字列型の変数として宣言されていました☆


元に戻って・・・


実行!

【まとめ】

新規変数の宣言は、その場で「Shift+Ctrl+V」

こんなイイ方法があったんだ☆

今度から、毎回使おう!!!