如何在 fmx 网格中使用从右到左的语言

How to use right to left languages in fmx grids

在 FMX 中创建支持双向模式和从右到左语言的网格的最佳方法是什么 我试过 fmxrtl 但它有很多错误 谢谢

您的应用仅适用于 Windows 吗? 如果是,我用一个函数检测它是否是双向字符串,然后使用 TTextLayout my test here 否则,尝试使用 SKIA4Delphi (XE7+)Supporting right to left

我测试了一个 Android 小应用 ScreenShot

procedure TForm1.Grid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas;
  const Column: TColumn; const Bounds: TRectF; const Row: Integer;
  const Value: TValue; const State: TGridDrawStates);
begin
if (Column.Index=1) AND (Row>=1)
then begin
      Canvas.Fill.Color:=TAlphaColors.Red;
      Canvas.FillText(Bounds,Value.ToString,false,1,[TFillTextFlag.RightToLeft],TTextAlign.Leading);
end
else Column.DefaultDrawCell(Canvas,bounds,row,value,state);
end;