相关疑难解决方法(0)

Firemonkey网格控件 - 将列对齐到右侧

我正在使用FireMonkey Grid控件,但在尝试右对齐列时遇到了一个持续的问题.从其他用户发布的帖子中,我设法创建了一个新的TColumn类型,将一个样式应用于此(文本为HorzAlign = taTrailing)并且在理论上 - 认为这将是解决方案.这些值由OnGetValue函数提供给Grid控件.

但问题是,虽然一开始它看起来不错,但是如果你滚动条形/鼠标滚轮等,新的TColumn类型列似乎没有使用下面的方法/代码正确刷新.它可能是网格的错误/特征(或者我正在做的方式).我试过.ReAlign等...; 但无济于事.让网格重新排列的唯一方法是执行列调整大小 - 然后重新正确重绘?

下面的代码显示它是一个简单的TGrid,有2个cols,1个标准的StringColumn和1个我的新StringColNum(应用了wuth右对齐). - 任何帮助,因为这是任何网格工作的基本要求.

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Objects, FMX.Grid,
  FMX.Layouts, FMX.Edit;

type
  TForm1 = class(TForm)
    Grid1: TGrid;
    Button1: TButton;
    StyleBook1: TStyleBook;
    procedure Grid1GetValue(Sender: TObject; const Col, Row: Integer;
      var Value: Variant);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TStringColNum = class(TStringColumn)
  private
    function CreateCellControl: TStyledControl; override;
  public
    constructor Create(AOwner: TComponent); override;
  published
  end;

var …
Run Code Online (Sandbox Code Playgroud)

delphi grid delphi-xe2 firemonkey

6
推荐指数
1
解决办法
8597
查看次数

标签 统计

delphi ×1

delphi-xe2 ×1

firemonkey ×1

grid ×1