StringGrid字体颜色问题

tjj5203 2009-11-26 04:58:23
问题描述:
StringGrid中显示的数据要进行频繁的更新,但是每次更新的是某个单元格中字段的某个部分,
例如:
cell[1,1]中 00 00 00 00,那么每次可能只是更新其中的一个字节 00

实现功能:
把更新的那个字节的00的颜色设为不同的颜色

大家给想想办法,本人想到的就是TextRect根据字符位置的定位,还没试过,不知道行不
...全文
66 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjj5203 2009-11-26
  • 打赏
  • 举报
回复
啥也不说了,结贴!
xzhifei 2009-11-26
  • 打赏
  • 举报
回复

procedure DrawColorText(aCanvas: TCanvas; const x, y: Integer; const Texts: array of string; const Colors: array of TColor; const FontStyles: array of TFontStyles);var
w, i: Integer;
begin
w := 0;
for i := Low(Texts) to High(Texts) do
begin
aCanvas.Font.Style := FontStyles[i];
aCanvas.Font.Color := Colors[i];
aCanvas.TextOut(x + w, y, Texts[i]);
w := w + aCanvas.TextWidth(Texts[i]);
end;
end;


//测试代码
DrawColorText(
Canvas,
100, 100,
['测试', '颜色', '字符串', '程序示例'],
[clBlack, clRed, clBlack, clBlue],
[[],[fsBold],[],[]]);

老之 2009-11-26
  • 打赏
  • 举报
回复
用TAdvStringGrid就能很方便解决颜色问题
wzwcn 2009-11-26
  • 打赏
  • 举报
回复
自画的时候不要把00 00 00 00一次性textout,而是一次只画一个字节00,当发现这个改变的时候改颜色画就行了

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧