如何将表格控件(如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; 有没有Delphi调试增强工具 各位老师好; 原来做好的数据库连接现在有问题了... 新手请问个简单问题 有谁会使用import type library 引入的MSN的相关控件delphi中 关于Delphi中的多窗体... 中国零售业的未来——人人乐!(转贴) 一起谈模式,ok? 设置文件夹的权限问题 如何确定Tmemo的行距 初鸟问题,不胜感激 一个小问题,在线等待,请高手赐教! 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;