Ich glaube so ist es einfacher.
Delphi-Quellcode:
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
var
cBook : TBookmark;
begin
cBook := MyTable1.GetBookmark;
MyTable1.OrderFields := DBGrid1.Columns[pred( DBGrid1.Col )].Fieldname;
MyTable1.GotoBookmark( cBook );
MyTable1.FreeBookmark( cBook );
end;
Du brauchst keine verschachtelten If-Clauses wenn du sowieso nur nach "DBGrid1.Columns[pred( DBGrid1.Col )].Fieldname" sortierst.
Mit dem Datensalat kann ich dir nicht weiterhelfen, hab' noch nie TTable benutzt.