エディットコンポーネントは,プログラム実行中に文字を入力できるコンポーネントです。フォームにエディットコンポーネントを貼り付け,実行するだけで自由に文字を入力できます。
このエディットコンポーネントのプロパティを見てみると,[left][top][width][height]などがあるので,位置や大きさを変えられます。しかしこの中で,[height]だけは変更しようとしても,変更できません。これは,フォントの大きさが関係しているのでフォントを大きくすれば,[heiht]の大きさが変わります。もし,フォントの大きさに関係なく[heiht]を変えたい場合は,プロパティの中の[autosize]のチェックを外すことで可能になります。
エディットコンポーネントを貼り付けたときには,「Edit1」と表記されていますが,これを消したいときは,プロパティの中の[text]の欄を空欄にすれば消えます。
またエディットコンポーネントの文字列は左詰めになっていますが,これを右詰めにしたいときは,プロパティの中の[BidiMode]を[bdRightToLeft]にすれば右詰めになります。
左の図は,Edit1とEdit2を貼り付け,Edit2の[BidiMode]を[bdRightToLeft]に変えたものです。
エディットコンポーネントは文字を入力するためのものなので,イベントを発生させることはあまりありません。
しかし,今回はキーを押したときに発生するイベントを使って,数字だけ表示させるようにしたいと思います。
まずは,フォームにエディットコンポーネントを貼り付けて,[OnKeyPress]イベントを呼び出してください。次に下記のように記述してみてください。
これは,押されたキーが,0から9以外なら,押されたキーを無効にする,という処理を表します。
これを実行すると,数字以外のキーを押しても表示されなくなります。しかしこの場合の問題点として,[BackSpace]キーも無効にされてしまいます。[Delete]キーは普通に作動するので原因は不明です。
そこが気になったので,次のように改良してみました。
Edit3の[OnKeyDown]イベントを呼び出し,以下のように記述してみてください。
実は,上記のコードを作成して[実行]すると,エラーが出てしまいます。原因は「VK_back」という言葉です。これは[BackSpace]キーのことですが,このままでは認識してくれません。認識させるには,次の作業を行います。
コードエディタの上の方に,次の文字列があります。
この最後に「LCLType」を追加して,下のようにしてください。
これで,[VK_back]という言葉が認識されるようになり,[実行]できます。
これらはわかりにくいので,ファイルを添付します。よければダウンロードしてみてください。
→ダウンロード