我也无法使用 TFDMemTable 重现该问题。
我在一个新的 VCL 应用程序的主窗体上删除了 TFDMemTable、TDataSource 和 TDBGrid,照常连接它们(网格的数据源设置为 DataSource1,数据源的 DataSet 设置为 FDMemTable1 ),然后将以下代码添加到表单的OnCreate 事件中:
procedure TForm3.FormCreate(Sender: TObject);
begin
FDMemTable1.FieldDefs.Add('ID', ftInteger, 0, True);
FDMemTable1.FieldDefs.Add('LastName', ftString, 20);
FDMemTable1.FieldDefs.Add('FirstName', ftString, 20);
FDMemTable1.FieldDefs.Add('Salary', ftCurrency);
FDMemTable1.CreateDataSet;
FDMemTable1.Active := True;
FDMemTable1.AppendRecord([1, 'Smith', 'John', 30000]);
FDMemTable1.AppendRecord([2, 'Jones', 'Jane', 40000]);
FDMemTable1.AppendRecord([3, 'Doe', 'David', 2500]);
DBGrid1.Columns[3].Alignment := TAlignment.taRightJustify;
DBGrid1.Columns[3].Title.Alignment := TAlignment.taRightJustify;
end;
如果我在设计时设置所有内容,它也可以正常工作。重复我上面使用的相同设置步骤,但不要使用代码,而是使用以下步骤:
在对象检查器中选择 FDMemTable1。在 OI 的底部,单击 LoadFromFile 链接,然后导航到 BDS Samples 数据文件夹(默认情况下,在 C:\Users\Public\Public Documents\Embarcadero\Studio\17.0\Samples\数据)并选择 animals.fds。 (选择那个没有具体原因,除了它有一个我们可以用来测试的数字字段。)
右键单击 DBGrid,然后选择 Columns Editor,或单击对象检查器中 DBGrid.Columns 属性上的省略号按钮。右键单击列编辑器并选择添加所有字段。
选择 Size 或 Weight 列,展开它的 Title 属性,然后设置 Alignment到taRightJustify。
运行应用程序。您在上面第 3 步中修改的列有一个右对齐的标题。 (这里我使用了 Size 列。)