• ベストアンサー

Delphi Edit1.Widthを自動調整

Delphi 6又はターボ TEdit(コンポーネント?)の幅を、入力された文字数に合わせて自動的に大きくしたり小さくするプロパティ(?)ってありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.1

TEditコンポーネントのTextに合わせて幅を調節するプロパティはないと思います。 なお、入力に合わせて幅が変わるインタフェースは見たことがないように思います。それは使いにくい、美しくないからではないでしょうか。(^^;;; よくあるのはフォームの幅に連動するというもので、Anchorsを使って実現できます。 それでも入力に合わせたいという場合、実現の一つの案は、Form1にEdit1が置いてあるものとして、Edit1のOnChangeイベントを下記のようにすることです。Windows XP + Delphi2007で試しました。なお、どこまで広げるかはチェックが必要だと思います。 procedure TForm1.Edit1Change(Sender: TObject); begin Form1.Canvas.Font:=Edit1.Font; Edit1.Width := Form1.Canvas.TextWidth(Edit1.Text)+20; // 幅に余裕を持たせる end;

situmonnsya
質問者

お礼

やはり、ないですか。でも、 >Canvas.TextWidth 参考になりました。 CADやイラストレイターみたいなソフトの文字入力の部分を作りたかったもので。 ありがとうございました。