D7移植到Delphi2009,TStringGrid DrawCell使用DrawText时出现乱码,请教怎么回事?

dyfh 2012-05-05 08:15:36
代码在下面,在Delphi7里是完全没有问题的,但把代码移植到2009后,发现DrawText的中文会出现乱码,而如果没有中文只有英文和数字,则只显示第一个字符,请问这是怎么回事?如何解决??

procedure TfrmSick.stringgridInfoDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
r:TRect;
a:TGridRect;
begin
with TStringGrid(Sender).Canvas do
begin
if ((ARow=TStringGrid(Sender).Row)) then begin
Brush.Color := $00FAE2C0;
FillRect(rect);
SetRect(r,Rect.Left+2,Rect.Top+4,Rect.Right,Rect.Bottom);
Font.Color:=clBlack;
DrawText(Handle,PAnsiChar(TStringGrid(Sender).Cols[acol][arow]),-1,R,DT_LEFT or DT_WORD_ELLIPSIS);
end;
end;
end;
...全文
196 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dyfh 2012-05-07
  • 打赏
  • 举报
回复
解决了
DrawText(Handle,PAnsiChar(AnsiString(TStringGrid(Sender).Cols[acol][arow])),-1,R,DT_LEFT or DT_WORD_ELLIPSIS);

多谢sailxia
dyfh 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

你先要确定PAnsiChar(TStringGrid(Sender).Cols[acol][arow])得到的是正确的结果,D7是ansi D2009是 unicode,一般处理不对就是乱码。
[/Quote]

是吗?我用showmessage(PAnsiChar(TStringGrid(Sender).Cols[acol][arow]));是能显示的,但draw出来的就不对了,请教如何处理?
Frank.WU 2012-05-06
  • 打赏
  • 举报
回复
你先要确定PAnsiChar(TStringGrid(Sender).Cols[acol][arow])得到的是正确的结果,D7是ansi D2009是 unicode,一般处理不对就是乱码。
山东蓝鸟贵薪 2012-05-05
  • 打赏
  • 举报
回复
那就建议你还是在网上查找一下这个DrawText在DELPHI中应该时的基本参数的
dyfh 2012-05-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

这个我就没有研究了,我只在32位系统下学习并研究程序的
当然这个也可能是那个API函数的问题了
[/Quote]

我本是32位win7 ,刚才试了也是一样,唉
山东蓝鸟贵薪 2012-05-05
  • 打赏
  • 举报
回复
这个我就没有研究了,我只在32位系统下学习并研究程序的
当然这个也可能是那个API函数的问题了
dyfh 2012-05-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

发现DrawText的中文会出现乱码

那你的这个开发环境:DELPHI7和DELPHI2009都在一台电脑上吗
我只是说有可能是开发环境的问题的
[/Quote]

我的系统是windows7 64位旗舰版,没有安装delphi7,只装了delphi2009。delphi7装在笔记本上的
山东蓝鸟贵薪 2012-05-05
  • 打赏
  • 举报
回复
发现DrawText的中文会出现乱码

那你的这个开发环境:DELPHI7和DELPHI2009都在一台电脑上吗
我只是说有可能是开发环境的问题的
dyfh 2012-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

应该不可能吧,你跟踪测试一下吧
[/Quote]

drawtext是windowsapi呀,跟踪不进去
山东蓝鸟贵薪 2012-05-05
  • 打赏
  • 举报
回复
应该不可能吧,你跟踪测试一下吧

5,388

社区成员

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

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