lazarus linux使用StringGrid和DBGrid等控件时,如果单元格内容包含#13时会显示乱码.

修改/lazarus/lcl/interfaces/gtk2/gtk2devicecontext.inc行1303行开始的:
procedure TGtkDeviceContext.DrawTextWithColors(AText: PChar; ALength: LongInt; X, Y: Integer; FGColor, BGColor: PGdkColor);
添加红字的代码,重新编译应用就可以
procedure TGtkDeviceContext.DrawTextWithColors(AText: PChar; ALength: LongInt; X, Y: Integer; FGColor, BGColor: PGdkColor); var WidgetCont: PPangoContext; NewMatrix: TPangoMatrix; OldMatrix: PPangoMatrix; renderer: PGdkPangoRenderer; Direction : TPangoDirection; AFont: PGdiObject; i:integer; procedure SetColors(AFGColor, ABGColor: PGdkColor); inline; begin gdk_pango_renderer_set_override_color(renderer, PANGO_RENDER_PART_FOREGROUND, AFGColor); gdk_pango_renderer_set_override_color(renderer, PANGO_RENDER_PART_UNDERLINE, AFGColor); gdk_pango_renderer_set_override_color(renderer, PANGO_RENDER_PART_STRIKETHROUGH, AFGColor); gdk_pango_renderer_set_override_color(renderer, PANGO_RENDER_PART_BACKGROUND, ABGColor); end; begin for i:=0 to length(AText)-1 do begin if ord(AText[i])<32 Then AText[i]:=#32; end; AFont := GetFont; SetLayoutText(AFont^.GDIFontObject, AText, ALength);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~