Recurso de loops com ForIn não estão disponível para os componentes TDataSet o que não permite usar:
[code lang=”pascal”]
var fld:TFields;
begin
for fld in FQuery1 do
begin
memo1.lines.add( fld.fieldByName(‘nome’).asString );
end;
end;
[/code]
Um objeto que queira fazer uso de ForIn deve implementar a interface IEnumerator.
Fazendo uma adaptação útil para a classe TFDQuery do FireDAC é possível escrever os seguintes métodos para atender a condição do ForIn:
[code lang=”pascal”]
function GetEnumerator: IQuery;
function GetCurrent: TFields;
property Current:TFields read GetCurrent;
function MoveNext: boolean;
procedure Reset;
[/code]
A propriedade de colunas da tabela já implementa Enumerator o que permite usar:
[code lang=”pascal”]
for f in query1.fields do
begin
memo1.Lines.add( f.FieldName );
end;
[/code]