Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-08-2005
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Dbgrid autoajustable

Hola amigos.

Tengo un grid asociado a un query y me gustaria que el mismo se ajustara
en el ancho a la suma de las columnas del query. Me explico??
Para q no quede espacio vacio en blanco. El problema es q el query, puede ser variable, o sea puede tener de 3 a 6 columnas.
Mi idea es qu sea bien si se ven 3 columnas o 6.

Gracias.
Responder Con Cita
  #2  
Antiguo 10-08-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 19
jmariano Va por buen camino
Saludos!

Habría dos formas de hacer lo que pides, una es ajustar el ancho del grid según las columnas que contenga y otra es ajustar el ancho de cada columna hasta completar el ancho del grid. Tanto para una forma como para la otra, tendrías que añadir un método al formulario que contenga el DBGrid e invocarlo cada vez que se ejecute el query.

- Ajustar el ancho del grid según las columnas que contenga:

Código Delphi [-]
procedure AjustarGrid;
var
  I: Integer;
begin
  DBGrid.Width := 40; // Deja espacio suficiente para el indicador de fila y la barra vertical 
 
  for I := 0 to DBGrid.Columns.Count - 1 do
    DBGrid.Width := DBGrid.Width + DBGrid.Columns[i].Width;
end;

Por supuesto, faltaría en el bucle una condición que indicara hasta donde podría crecer como máximo el ancho del grid para que no se saliera del formulario.

- Ajustar el ancho de las columnas del grid según el ancho de éste:

Código Delphi [-]
procedure AjustarGrid;
var
  I, J: Integer;
begin
  { Le restamos, primero, al ancho del grid lo que ocuparía la barra vertical y
    el indicador de filas. }
  J := (DBGrid.Width - 40) div DBGrid.Columns.Count; 
 
  for I := 0 to DBGrid.Columns.Count - 1 do
    DBGrid.Columns[i].Width := J;
end;

Lo malo de hacerlo así es que si se visualizan muchas columnas y el ancho del grid es reducido, las columnas no se visualizarán muy bien al tener poco ancho.

Chao!

Última edición por jmariano fecha: 10-08-2005 a las 21:56:15.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:08:12.


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
Copyright 1996-2007 Club Delphi