delphi – TA_CENTER不适用于居中对齐StringGrid

delphi – TA_CENTER不适用于居中对齐StringGrid,第1张

概述我必须在StringGrid(它的单元格)中居中对齐文本,我使用你在这里看到的代码.我在这里找到了另一个答案,我编辑了一些东西. procedure TForm1.StringGrid1DrawCell(Sender: TObject; aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState);var LStrCell: str 我必须在StringGrID(它的单元格)中居中对齐文本,我使用你在这里看到的代码.我在这里找到了另一个答案,我编辑了一些东西.

procedure TForm1.StringGrID1DrawCell(Sender: TObject; aCol,aRow: Integer;  aRect: TRect; aState: TGrIDDrawState);var  LStrCell: string;  LRect: TRect;  qrt:double;begin  LStrCell := StringGrID1.Cells[ACol,ARow];  StringGrID1.Canvas.FillRect(aRect);  LRect := aRect;  DrawText(StringGrID1.Canvas.Handle,PChar(LStrCell),Length(LStrCell),LRect,TA_CENTER);  //other codeend;

我正在使用Lazarus并且它给了我一个错误,因为它无法识别TA_CENTER.有解决方案吗

解决方法 由于您使用的是Lazarus,我不会依赖于特定于平台的windows API函数,而是使用内置的canvas TextRect方法.在(未经测试的)代码中,它可能是:

procedure TForm1.StringGrID1DrawCell(Sender: TObject; aCol,aRow: Integer;  aRect: TRect; aState: TGrIDDrawState);var  CellText: string;  TextStyle: TTextStyle;begin  CellText := StringGrID1.Cells[ACol,ARow];  StringGrID1.Canvas.FillRect(ARect);  TextStyle := StringGrID1.Canvas.TextStyle;  TextStyle.Alignment := taCenter;  StringGrID1.Canvas.TextRect(ARect,CellText,TextStyle);  ...    end;

无论如何,您已经使用了一个TA_CENTER常量,它由不同的windows API函数使用,由SetTextAlign函数使用.您应该使用DrawText函数使用的DT_.

总结

以上是内存溢出为你收集整理的delphi – TA_CENTER不适用于居中对齐StringGrid全部内容,希望文章能够帮你解决delphi – TA_CENTER不适用于居中对齐StringGrid所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1246001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存