AsuYuHomepage
トップページ サイトの説明 子供の成長記録 JM BAR Delphi リンク集
Home>>プログラミング>>Tips&Tricks>>TEditを数値入力専用&テキスト右寄せにする
Delphi Tips
Delphi Win32API
ダウンロード

Delphi Tips & Tricks

TEditを数値入力専用&テキスト右寄せにする

 上記のTipに続いてまたしてもウィンドウスタイルを変更するだけです。これだけで右寄せプラス、数字以外の入力を受け付けない数値入力専用のTEditになります。
procedure TForm1.FormCreate(Sender: TObject);
begin
  //フォーム作成時に入れ替え
  SetWindowLong(Edit1.Handle, GWL_STYLE,
                GetWindowLong(Edit1.Handle, GWL_STYLE)
                or ES_RIGHT
                or ES_NUMBER);
  //変更を反映
  SetWindowPos(Edit1.Handle, 0, 0, 0, 0, 0,
               SWP_NOMOVE or SWP_NOSIZE or
               SWP_NOZORDER or SWP_FRAMECHANGED);
end;

 コントロールのウィンドウィンドウスタイルにはDelphiのプロパティでサポートされていないものがあります。この右寄せと数値入力もそのひとつで、数値入力だけにしたいときは結構あるものなので、ひとつ覚えておけばいいと思います。
 ※環境によっては設定が反映されないようなので、その場合はTEditを継承したコンポーネントを作成しそのCreateParamsメソッドをオーバーライドするしかないようです。