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

CBアプリ工房


Tips >   

RichEdit で行列数を取得する 

更新 : 2009/12/17

 



解説:
CaretPos プロパティを使うと、RichEdit や Memo などのクライアント領域でキャレット位置を知ることが出来ます。
キャレット位置からは、エディタなどでよく使われる、行列数が調べられます。

使用例:
今回は、RichEdit1 に文字を入力した時、文字数に応じて、行列数を表示させています。

コンポーネントは、 RichEdit, StatusBar を適当に配置します。
RichEdit1 の Align を alClient に変更しておいてください。

OnKeyUp にコードを記述します。
CaretPos プロパティで X 座標と Y 座標を取得しています。各々 0 から始まりますが、行列の関係で +1 しておきます。代入された値をまとめて、ステータスバーに表示しています。

行列は、バイト数でカウントさせています。使い方によっては、Microsoft Word のように文字数で表示した方が便利な場合もあります。時間のある方は、行桁(Word での表記)を表示するコードも考えてみてください。

//-------------------------------------------------------------------
void __fastcall TForm1::RichEdit1KeyUp(TObject *Sender, WORD &Key,
    TShiftState Shift)
{
    // 行
    int row = RichEdit1->CaretPos.y + 1;
    // 列
    int column = RichEdit1->CaretPos.x + 1;

    // 行列数を表示
    StatusBar1->SimpleText = IntToStr(row) + ": " + IntToStr(column);
}
//-------------------------------------------------------------------



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