Puedes poner esto en el evento OnTitleClick:
Código:
procedure TFDatos.DBGProfesTitleClick(Column: TColumn);
var
iX : integer;
sOrden : string;
begin
//orden según columna pinchada
Case Column.Index Of
0 : sOrden := 'NOMBRE, APELLIDOS';
1 : sOrden := 'APELLIDOS, NOMBRE';
2 : sOrden := 'ASIGNATURA, APELLIDOS, NOMBRE';
3 : sOrden := 'SITUACION, APELLIDOS, NOMBRE';
end;
DM.IBDSProfes.Close;
DM.IBDSProfes.SelectSQL.Text := 'Select * from PROFES order by '+sOrden;
DM.IBDSProfes.Open;
for iX := 0 to 3 do
if Column.Index <> iX then
DBGProfes.Columns.Items[iX].Color := clWhite
else
Column.Color := clCream;
end;
Siempre orden ascencendente, todos los registros seleccionados, tabla InterBase con IBXs.
Cambia el color de la columna seleccionada. En el evento OnCreate debes colorear la que está inicialmente ordenada, por ej.
Código:
DBGProfes.Columns.Items[1].Color := clCream;
Un saludo. Tomás.