Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cambiar el tamaño de una grilla cuando maximizo el frm (https://www.clubdelphi.com/foros/showthread.php?t=26992)

pyanqn 09-11-2005 15:26:15

Cambiar el tamaño de una grilla cuando maximizo el frm
 
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

Cita:

Empezado por pyanqn
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

Cita:

Empezado por FunBit
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

Checa Esto....
 
En el Evento FormResize de la Forma pon el siguiente código:
Código Delphi [-]
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

Cita:

Empezado por AGAG4
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

Cita:

Empezado por pyanqn
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:

Código Delphi [-]
 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...


La franja horaria es GMT +2. Ahora son las 10:35:24.

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