掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
色分けをやってみたいんですけど…。 (ID:1057)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
そうですかぁ、やっぱりここかなぁ…。 こういう関数をつくって、 function NewCharFormat(const Color:TColor=0; const Effects:TFontStyles=[];const FontSize:Cardinal=0): TCharFormat; var Masks,Effect : Cardinal; CF : TCharFormat; begin with CF do begin Masks := 0; cbSize := SizeOf(CF); if (fsBold in Effects) then inc(Masks,CFM_BOLD); if (fsItalic in Effects) then inc(Masks,CFM_ITALIC); if (fsUnderline in Effects) then inc(Masks,CFM_UNDERLINE); if (fsStrikeout in Effects) then inc(Masks,CFM_STRIKEOUT); Effect := Masks; if Color <> 0 then begin inc(Masks,CFM_COLOR); crTextColor := Color; end; if FontSize <> 0 then begin inc(Masks,CFM_SIZE); cbSize := FontSize; end; dwEffects := Effect; dwMask := Masks; end; Result := CF; end; これを、 for i := 0 to High(CFont) do CFont[i] := NewCharFormat(clFuchsia,[fsBold],9); とやってCharFormatを設定してます。 怪しいのはここかなとも思ったんですけど、 デバッグで見たところ、 ちゃんとcbSizeは、HSPのサイトで見かけた60(この構造体の正しいバッファサイズらしいです)になってるし、 dwMaskは$4千万(色)+$8千万(サイズ)+1(ボールド)になってるみたいです。 CFM_BOLDとかは、RichEdit.pasを見たところ、 CFE_BOLDと同じ数値みたいなので、Effectにもそのまま代入しました。 デバッグで一行ずつ経過を見てみたら、ちゃんと変なところに行ったり、スキップしたりはしてないようです。 どこかおかしいでしょうか? > Performした場合、ProcessMessagesは必要なさそうです。 いちおう念のためにつけておいてました。 色分けが遅くなって、そのあいだに応答なしとみなされて、強制終了されちゃうと困るので。 あと、WindowProcはそのままです。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.