如何将表格控件(如tsgrid,stringgrid)中某个单元格中的部分字符高量显示?如单元格的内容为“今天深圳天气晴朗,北京天气阴天”,将其 如何将表格控件(如tsgrid,stringgrid)中某个单元格中的部分字符高量显示?如单元格的内容为“今天深圳天气晴朗,北京天气阴天”,将其中的“深圳”二字用红色显示,其他字符颜色不变。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 写OnDrawCell事件自己画,改变StringGrid.Canvas.Font.color,用DrawText、TextRect或TextOut函数输出 我觉得只有用DrawText、TextRect或TextOut函数输出 procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);var DRect: TRect; Mode,Len: Integer; CellStr: WideString; S1,S2: String;begin StringGrid1.Canvas.FillRect(Rect); DRect.Top := Rect.Top+3; DRect.Left := Rect.Left+2; DRect.Right := Rect.Right; DRect.Bottom := Rect.Bottom ; if ARow=0 then Mode := DT_CENTER else Mode := DT_LEFT; CellStr := '今天深?天气晴朗'; Len := Length(CellStr); S2 := copy(CellStr,Len,1); if (ARow=0) then begin S1 := copy(CellStr,1,Len-1); DrawText(StringGrid1.Canvas.Handle,PChar(S1),Length(S1),DRect,Mode); StringGrid1.Canvas.Font.Color := clRed; DRect.Left := Rect.Left + StringGrid1.Canvas.TextWidth(CellStr) + 2; DrawText(StringGrid1.Canvas.Handle,PChar(S2),Length(S2),DRect,Mode); end else begin S1 := CellStr; DrawText(StringGrid1.Canvas.Handle,PChar(S1),Length(S1),DRect,Mode); end;end; 如何通过串口给手机发送 一条8bit编码的短信? 菜,菜,,菜,,,,,,, 请高手进来看看这个奇怪的问题,在线等待中 困惑2周的问题大家帮帮小女子:cdgrid 关于Image上面放置Label控件的问题 这几个VC写的DLL在DELPHI中如何调用?参数如何定义? 关于文件关联的问题? 各位大哥是不是我的分不够啊, 怎么没人给我解决问题呢, google今天入口 找人开发加密狗程序,会的请进,谢谢! 在局域网中监视访问internet的IP (急!!!!!!!!!!!!) 一个小问题,在线等待,请高手赐教! COBRA OBJECT 为何我无处新建!
Rect: TRect; State: TGridDrawState);
var DRect: TRect;
Mode,Len: Integer;
CellStr: WideString;
S1,S2: String;
begin
StringGrid1.Canvas.FillRect(Rect); DRect.Top := Rect.Top+3;
DRect.Left := Rect.Left+2;
DRect.Right := Rect.Right;
DRect.Bottom := Rect.Bottom ; if ARow=0 then
Mode := DT_CENTER
else
Mode := DT_LEFT; CellStr := '今天深?天气晴朗';
Len := Length(CellStr);
S2 := copy(CellStr,Len,1); if (ARow=0) then begin
S1 := copy(CellStr,1,Len-1);
DrawText(StringGrid1.Canvas.Handle,PChar(S1),Length(S1),DRect,Mode); StringGrid1.Canvas.Font.Color := clRed;
DRect.Left := Rect.Left + StringGrid1.Canvas.TextWidth(CellStr) + 2;
DrawText(StringGrid1.Canvas.Handle,PChar(S2),Length(S2),DRect,Mode);
end
else begin
S1 := CellStr;
DrawText(StringGrid1.Canvas.Handle,PChar(S1),Length(S1),DRect,Mode);
end;
end;