- ベストアンサー
Delphi Edit1.Widthを自動調整
Delphi 6又はターボ TEdit(コンポーネント?)の幅を、入力された文字数に合わせて自動的に大きくしたり小さくするプロパティ(?)ってありますか?
- みんなの回答 (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;
お礼
やはり、ないですか。でも、 >Canvas.TextWidth 参考になりました。 CADやイラストレイターみたいなソフトの文字入力の部分を作りたかったもので。 ありがとうございました。