ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

TextWidth で 1 行を全角 20 字にする 

更新 : 2009/10/29

 



解説:
Memo に文字入力して、原稿用紙みたいに 1 行何文字と分かれば便利です。全角半角文字があるので幅だけでは文字数をコントロールできませんが、とりあえず全角 20 字で考えてみます。

Memo の Font は、文字幅の関係があるので、プロポーショナルフォントではなく、MS ゴシックを使っています。

使用例:
例では、20 字が分かりやすいように、Memo1 コンポーネントに文字列 "あいうえおあいうえおあいうえおあいうえおかきくけこ" を入力しておき、Button1 のクリックで Memo1 の幅を 20 字相当に設定しています。

コンポーネントは、 Memo と Button を配置するだけです。

Button1 をクリックすると、TextWidth を使って、現在のフォントで描画された文字列 20 字の幅をピクセル単位で計算します。
その幅に合わせ、少し余白分を考慮して Memo1 の Width を設定しています。

//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
     Memo1->Font->Name = "MS ゴシック";

    // 計算
    int width = Canvas->TextWidth("W") * 20;

    // 入力制限したエリアにする
    Memo1->Width = width + 10;
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.