Evo, uspio sam napraviti rješenje pa ako će ikome trebati ovdje je:
Code:
void __fastcall TFGlavni::DBG1ClickSort(TObject *Sender, int ACol)
{
// DBG1->SortSettings->Show = true;
// DBG1->SortSettings->IndexShow = false;
AnsiString Kolona = DataModul->TOdgovori->Fields->FieldByNumber(ACol)->FieldName;
if(DBG1->SortSettings->Direction == sdDescending) Kolona = Kolona + " DESC";
DataModul->TOdgovori->IndexFieldNames = Kolona;
}
Sortiranje se odvija direktno preko DataSet-a, a ne virtualno u gridu. Ovaj gornji primjer se koristi za sortiranje po jednom stupcu i za funkcioniranje ovog koda potrebno je u DataSet komponenti dodati sva polja (kolone), te da je raspored polja (kolona) u DataSet-u jednak rasporedu kolona u gridu.
Za sortiranje po više stupaca potrebno je mnogo više komplikacija jer DBG1->SortSettings->Direction se ne mijenja automatski već vi sami morate dohvatiti sve indekse pa onda "ručno" ispitivati redoslijed. Još nisam do kraja rješio i taj način sortiranja jer mi to u pravilu sada niti ne treba, pa ako riješim stavim ovdje.