PDA

Ver la Versión Completa : Cambiar el tamaño de una grilla cuando maximizo el frm


pyanqn
09-11-2005, 15:26:15
Esa es la duda, dentro del evento resize debo indicarle a la grilla que tambien debe ejustarse el nuevo tamaño del formulario, como hago para hacer esto?
es decir que le asigno al valor altura y ancho de la grilla?

lucasarts_18
09-11-2005, 15:57:39
es decir que le asigno al valor altura y ancho de la grilla? Sé qué podría haber mejores forma de hacerlo, pero lo que se viene a la mente, creo que el evento Resize puedes guardar en variables el nuevo valor del formulario y esos valores ir jugando con las propiedades de la grilla.

Nunca lo he hecho, así puedo estar metiendo las patas :rolleyes:

Hasta Luego -

FunBit
09-11-2005, 15:57:58
Revisa si tiene la propiedad Align y marcale la opción alClient.

Si no es eso lo que necesitas, danos mas informacion sobre tu problema para que podamos ayudarte mejor.

Un saludo pyanqn.

lucasarts_18
09-11-2005, 16:03:30
Revisa si tiene la propiedad Align y marcale la opción alClient.

El problema de esto es cuando tienes mas controles sobre el Form ya que cubre toda la pantalla...:(

Saludos..

pyanqn
09-11-2005, 16:18:49
los controles son una grilla y un boton en la parte inferior. Hay que realizar algunos calculos de los tamaños, digamos formulario, grilla,boton

algo asi como topedegilla:= topedefrm;
buttongrilla:=buttonfrm - topboton;

algo así?

Perio
09-11-2005, 16:25:57
La forma mas sencilla y correcta de lograr esto es usando anclas (Anchors).
Lo que deberias hacer es acomodar la grilla en el formulario de la forma mas conveniente y luego en la grilla y desde el inspector de objetos darle los anchors que se deseen, a los costados, arriba abajo... (left, top, right.. etc)
De esta forma cuando cambies el tamaño del form la grilla se ajusta segun éste.

Saludos
Perio

AGAG4
09-11-2005, 17:37:39
En el Evento FormResize de la Forma pon el siguiente código:

var mpix:integer;
begin
mpix:=GetDeviceCaps(Canvas.Handle,LOGPIXELSX); // DPI Pantalla
dbgrid.Height:=Height-mpix-16;
mpix:=trunc(mpix/4);
dbgrid.Width:=Width-mpix;
end;


Saludos.....

jachguate
09-11-2005, 18:01:46
En el Evento FormResize de la Forma pon el siguiente código:

Creo que ya la solución mas adecuada la ha dado Perio. ¿por que sugerir esto después de aquello? ¿que ventaja o mejora representa?

Saludos.

;)

lucasarts_18
09-11-2005, 18:05:44
los controles son una grilla y un boton en la parte inferior. Hay que realizar algunos calculos de los tamaños, digamos formulario, grilla,boton

algo asi como topedegilla:= topedefrm;
buttongrilla:=buttonfrm - topboton;

Si algo similar, hice unas pruebas como te dije yo y me funciona:


procedure TForm1.FormResize(Sender: TObject);
var
Alto,Largo : Integer;
begin
Alto := Form1.Height;
largo := Form1.Width;
dbgrid1.Width := largo - 10;
dbgrid1.Height := Alto - 50;
end;

Solo debes ir jugando con los valores, y con respecto al bóton debes tomar las posiciones de la grillas y posicionarlo justo abajo...

Espero que te sirva..:rolleyes:

maeyanes
09-11-2005, 18:52:38
Ya bien lo dijo jachguate, la solución dada por Perio es la adecuada, no se compliquen la vida... ;)



Saludos...