この人頭いいなと思ったエピソード

Delphi 6又はターボ

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

A 回答 (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;
    • good
    • 0
この回答へのお礼

やはり、ないですか。でも、
>Canvas.TextWidth
参考になりました。

CADやイラストレイターみたいなソフトの文字入力の部分を作りたかったもので。

ありがとうございました。

お礼日時:2007/08/12 01:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報