这个问题只发生在firemonkey上。使用VCL,它可以完美地工作。
我有一个数据集(任何类型)连接到一个网格(任何类型),当点击列的标题时,必须按相应的字段进行排序。
For 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在这两种情况下使用,问题不存在。那么在绑定中就有一个同步问题。
Delphi 10.3.3
1条答案
按热度按时间lxkprmvk1#
希望我找到的解决方案能为其他人服务,我把它放在这里。