Windows XP, Delphi5 Proを使用しております。
RichEditコンポーネントで、1行全選択するにはどうす
ればいいでしょうか。実現したいのは、1行の文字列の
改行を越えてRichEditの右端まで、背景を反転表示
させたい、とこうことです。(Delihi のエディタが
やっているように)
このとき、反転表示する色も指定したいと思っております。
よろしくお願い致します。
行選択はこんな感じ?
全て選択するならSelectAllメソッドで可能です。
procedure TForm1.Button2Click(Sender: TObject);
var
iPos: Integer;
begin
//一行目
iPos := Length(RichEdit1.Lines[0]);
RichEdit1.SelStart := 0;
RichEdit1.SelLength := iPos;
RichEdit1.SetFocus;
end;
選択した部分の背景色を変更ならば以下が参考になりますか?
選択色の指定ではないですが・・・
http://www.swissdelphicenter.ch/en/showcode.php?id=1438
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=069991
Ruさん。ご回答ありがとうございました。
1行選択は、Ruさんの示された通りのコードで出来ました。
また、色の変更も教えていただいたHPを参照して出来ました。
これらを組み合わせて任意の行の背景色の変更は出来ました。
出来れば、1行の改行を越えてRichEditの幅まで変更したいと
思っております。
例えば以下の文字列をRichEditに書き込んで(目の次は改行コード)
RichEdit1行目
RichEdit2行目
1行目を反転させた時、'RichEdit1行目'の文字列を越えてRichEditの
幅分反転させたいと思っております。
よろしくお願い致します。
すいません。勘違いしていたようです。
EM_SETPARAFORMATに送信できるパラメータでも見つかりませんでした。
コンポーネントの性質上出来ない気もします。
ハイライトの制御がどの部分で行われている突き止めれば
できるかも?かなり大がかりな感じはしますが・・・
もし分かる方がいればフォローお願いします。
どうしてもご自分でコードを書きたいというのであれば,Ruさんのレスの通りです.
もし,他の方が作成したコンポーネントを利用してもいい,というのであれば,
例えばSynEditというコンポーネントがあります.
これに,SelectionModeというのがあり,これをsmLineにすると,行全体を反転
表示できます.
Ruさん、Mr.XRAYさん、ご回答ありがとうございました。
今回はRichEditを使用したいと考えております。
お二人のお答えの内容を見て、1行全選択はかなり困難である
と思いました。
よりまして、Ruさんが初めに示されたコードでやろうと思います。
他のHPを見ても、RichEdit以外のコンポーネントが紹介されて
おりました。
Ruさん、Mr.XRAYさん、貴重なお時間を取っていただき
ありがとうございまた。ここで「解決」とさせていただきます。
ツイート | ![]() |