修复 XE8 FMX TGridLayout 容器自动计算宽度及高度的问题

说明:TGridLayout 提供计算容器内控件等分的功能:

  • 横式(Orientation=Horizontal)可将 ItemWidth = -1(小于0则自动等分)
  • 直式(Orientation=Vertical)可将 ItemHeight = -1(小于0则自动等分)

问题:当 TGridLayout 设定 Padding 边界时,会造成等分计算错误。

适用:XE8 Firemonkey

修复方法:

请将源码 FMX.Layouts.pas 复制到自己的工程目录里,再进行修改。

找到:
if CurPos.X + LItemWidth > Self.Width - Self.Padding.Left -
改成:
if CurPos.X + LItemWidth - Self.Padding.Left - 0.1 > Self.Width - Self.Padding.Left -

找到:
if CurPos.Y + LItemHeight > Self.Height - Self.Padding.Top -
改成:
if CurPos.Y + LItemHeight - Self.Padding.Top - 0.1 > Self.Height - Self.Padding.Top -

效果:

posted @ 2015-05-22 15:43  龟山Aone  阅读(1670)  评论(2编辑  收藏  举报