Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   maximizar grid (https://www.clubdelphi.com/foros/showthread.php?t=34519)

jsanchez 11-08-2006 22:50:53

maximizar grid
 
Hola foro

Tengo un StringGrid con 5 Columnas, dentro de un form. El form cambia de tamaño. como puedo hacer para que sea la columna del centro la que cambie de tamaño y las 5 columnas sigan ocupando la totalidad del espacio cuando se maximiza.

Gracias

egostar 11-08-2006 23:12:57

No entiendo bien que quieres decir con eso de que se maximiza, pero si quieres modificar el tamaño de una sola columna puedes usar esta propiedad del StringGrid.

Código Delphi [-]
 
  StringGrid1.ColWidths[2] := 300; // de las 5 columnas la del centro es la 2

Saludos.

Perdon, no leí bien tu pregunta, dices al maximizar la forma.:)

jsanchez 11-08-2006 23:17:02

vamos a ver si me explico mejor.
es como si las columnas tuvieran un "anchor", es decir, que sin importar el ancho del grid, las dos primeras columnas siempre estaran a la izquierda y las dos ultimas a la derecha, y que los cambios de tamaño solo repercutirán en la central.

preferiria si hay una manera automatica de hacer eso, y no tener que calcular el tamaño, y luego ponerlo a la columna central.

Casimiro Notevi 11-08-2006 23:27:33

Hay grids que lo hacen automáticamente poniendo a "true" alguna propiedad del tipo "autowidth".
El grid estandar de delphi no lo hace, así que tendrás que calcularlo tú mismo.

egostar 11-08-2006 23:28:21

Vamos a suponer lo siguiente:

las 4 columnas de los extremos tienen un ancho fijo de 100 pixeles, ¿ok?


Código Delphi [-]
Var
  AnchoForma : Integer;
 
//Al mostrar la forma calculamos el tamaño de la columna central restando 400 pixeles.
 
procedure TForm1.FormShow(Sender: TObject);
begin
  AnchoForma := Form1.ClientWidth;
  StringGrid1.ColWidths[2] := AnchoForma - 400;
end;
 
//Al cambiar el tamaño de la forma volvemos a calcular el tamaño de la columna central restando 400 pixeles.
 
procedure TForm1.FormResize(Sender: TObject);
begin
  AnchoForma := Form1.ClientWidth;
  StringGrid1.ColWidths[2] := AnchoForma - 400;
end;




Espero haber entendido tu problema.

Saludos

jsanchez 11-08-2006 23:29:49

Gracias, lo haré así


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

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