Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ordenar en grid (https://www.clubdelphi.com/foros/showthread.php?t=9225)

@-Soft 17-04-2004 14:07:25

Ordenar en grid
 
hola

disculpenme si el titulo no se parece mucho a lo que voy a preguntar, lo que pasa es que me llamo mucho la atencion como por ejemplo, cuando estamos en Windows y tenemos un listado de directorios en detalles estos se presentan en forma de filas y columnas algo parecido a un DBGrid de delphi, el asunto es que en el listado de directorio si pulsamos el titulo de la columna se ordena todos los archivos y directorios en orden ascendente y viceversa.

podrian decirme si existe algun componente DBGrid en el que se puedan ordenar los registros por columnas con solo presionar el titulo de la columnas, si esto es asi por favor diganme donde puedo conseguir este componente o si es un codigo favor escrilo, Gracias.

espero que hallan podido comprender mi descripcion.

Gydba 17-04-2004 14:52:14

El tipo de control que mencionás es el ListView en el caso de W$.

Por otro lado y contestando a tu pregunta, en el foro ya se conversaron temas relacionados al ordenamiento por columnas, sin ir mas lejos:
http://www.clubdelphi.com/foros/showthread.php?t=7524&

Por supuesto que tenés componentes de terceros (generalmente los mejores son comerciales) que hacen entre otras cosas lo que pedís.

Espero que algo te ayude.

Tomás 18-04-2004 01:26:21

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.


La franja horaria es GMT +2. Ahora son las 02:06:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi