C++Builder5を使っています。
TRichEditで行の一部の色を変えてその文字列をCanvas->TextOutしたいのですが
良い方法がみつかりません。
例えば、
"あいうえおかきくえこ"
という文字列があった時に基本色は白ですが、"かきく"だけを赤にして
Canvasに"あいうえおかきくえこ"という文字列を描画したいのですが・・・
簡単で良い方法があったら教えてください。。
文字を書いた後でしたら、範囲選択して、ボタンクリック
のような感じですかね?
{ Private 宣言 }
function CurrText: TTextAttributes;
function TForm1.CurrText: TTextAttributes;
begin
if RichEdit1.SelLength > 0 then Result := RichEdit1.SelAttributes
else Result := RichEdit1.DefAttributes;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CurrText.Color := clRed;
end;
manbon さんお答えありがとうございます。
僕の説明が悪かったのですが、
RichEditの一部の文字の色の変更はすでにされていて
それをCanvas->TextOutで描画したいのですが。。。
とりあえず思いつく方法としては
まず、色を白にして
Canvas->Text( 0,0,"あいうえおかきくえこ" );
そして、色を赤にして
Canvas->Text( ??,0,"かきく" );
この??の座標が・・・
Canvas.TextOut(0, 0, 'あいうえおかきくけこ');
Canvas.Font.Color := clRed;
Canvas.TextOut(Canvas.TextWidth('あいうえお'), 0, 'かきく');
TextWidthでX位置を取得するんですね。
ありがとうございました。
ツイート | ![]() |