【发布时间】:2022-01-27 11:35:19
【问题描述】:
该问题仅在 firemonkey 中出现。使用 VCL 可以完美运行。
我有一个数据集(任何类型)连接到一个网格(任何类型) 单击列标题时,必须按相应字段排序。
VCL
procedure TForm2.DBGrid1TitleClick(Column: TColumn);
begin
qrySec.IndexFieldNames := Column.FieldName;
end;
FMX
procedure TManFarmaQry.StringGrid1HeaderClick(Column: TColumn);
begin
case Column.Index of
0:
if mtblMedica.IndexFieldNames = 'Field1' then
mtblMedica.IndexFieldNames := 'Field1' + ':D'
else
mtblMedica.IndexFieldNames := 'Field1';
1:
if mtblMedica.IndexFieldNames = 'Field2' then
mtblMedica.IndexFieldNames := 'Field2' + ':D'
else
mtblMedica.IndexFieldNames := 'Field2';
2:
if mtblMedica.IndexFieldNames = 'Field3' then
mtblMedica.IndexFieldNames := 'Field3' + ':D'
else
mtblMedica.IndexFieldNames := 'Field3';
end;
end;
在 FMX 的情况下,可以观察到寄存器的重新排列,但它不对应任何内容。把所有东西都弄得乱七八糟。
我认为由于这两种情况都使用了 Firedac,所以问题不存在。然后是bind中的同步问题。
德尔福 10.3.3
【问题讨论】:
标签: sorting delphi indexing grid firemonkey