掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TEditorで文字列が欠損しないように文字列を描画するには (ID:48418)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
※文字化けが発生したのでスマホからもう一度同じ内容で投稿します。 いつもお世話になります。1点質問させてください。 現在、Windows 7 Pro + Delphi 6 Personalで、TEditorという有名なエディタ コンポーネントを使用したプログラムを作成しています。ここで、検索文字列を 強調表示させるべく、以下に類するようなコードを書いたのですが、強調した文 字列の最後が半角スペースであるときだけ、描画領域が勝手に1ピクセル分右に 膨らんでしまい、右隣の文字の一部が欠損してしまいます。 描画領域を勝手に膨らまないようにするには、どうしたらよいでしょうか。 ご教示のほど、よろしくお願いいたします。 1 再現コード ・Editor1(TEditor)をフォームに貼り付け、フォントを10ポイントの MSゴシックにします。 ・Editor1に文字列を2行以上入力し、OnDrawLineイベントに以下のコード を記述します。 ↓ここから procedure TForm1.Editor1DrawLine(Sender: TObject; LineStr: String; X, Y, Index: Integer; ARect: TRect; Selected: Boolean); begin Editor1.Canvas.Font.Name := 'MS ゴシック'; Editor1.Canvas.Font.Size := 10; Editor1.Canvas.Font.Style := [fsBold]; Editor1.Canvas.Font.Color := clRed; Editor1.Canvas.Brush.Color := clYellow; if Index = 0 then Editor1.DrawTextRect(ARect, X, Y, '111', ETO_CLIPPED); if Index = 1 then Editor1.DrawTextRect(ARect, X, Y, '22 ', ETO_CLIPPED); end; ↑ここまで 2 具体的な実行結果(画像) http://www.fastpic.jp/images.php?file=1262269390.png (2列目のbという文字が一部欠損しているのがわかるかと思います。)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.