我也无法使用 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\Data 中)并选择animal.fds . (选择那个没有具体原因,除了它有一个我们可以用来测试的数字字段。)
右键单击 DBGrid,然后选择Columns Editor,或单击 Object Inspector 中 DBGrid.Columns 属性上的省略号按钮。右键单击 Columns Editor 并选择Add all fields。
选择Size或Weight列,展开它的Title属性,然后将Alignment设置为taRightJustify
。
运行应用程序。您在上面第 3 步中修改的列有一个右对齐的标题。(这里我使用了Size列。)