Die Reihenfolge, in der die Felder angezeigt werden, wird durch die Reihenfolge im
SQL-Statement vorgegeben. Wenn du also die Eigenschaft
SQL (TStrings) bei TQuery benutzt, um dort das Statement zusammenzusetzen, kannst du sofort festlegen, welches Feld als erstes angezeigt werden soll. Dazu benötigst du IndexOf(Feldname) um die Zeilennummer des feldes zu ermitteln, das du löschen (Delete)mußt, und mit Insert fügst du den gewünschten Feldnamen hinter dem Schlüsselwort SELECT ein. Die Sortierung kannst du ähnlich aufbauen, wobei es hier angebracht ist, die Order-Klausel in einem eigenen String zu bauen und anschließend auszutauschen.
Grüße
Mikhal