Si los obtienes accediendo a la definición de los campos de la tabla, si que los obtienes en el orden en que están.
Código Delphi
[-] ADOTable1.Close;
ADOTable1.TableName := '[' + ListBox1.Items[ListBox1.ItemIndex] + ']';
ADOTable1.Open;
Memo2.Lines.Add('------------------------------------');
for var I:integer := 0 to (ADOTable1.Fields.Count - 1) do
Memo2.Lines.Add(ADOTable1.Fields[i].FieldName);
Es este código
ListBox1.Items[ListBox1.ItemIndex] me da uno de los nombre de las tablas.
Los de arriba son con
GetFieldNames y los segundos,
recorriendo los Fields con el código anterior.