PDA

Ver la Versión Completa : Redimensionar componentes


emeritos
08-01-2009, 13:34:26
Hola dilferos.

Lo que necesito es saber como puedo redimensionar los compenentes al tamaño del from, es decir, que se ajuste los compomentes al from que lo contiene, tenga el tamaño que tenga el from (se puede modificar en tiempo de ejecucion, sobre todo para los distintos tipos de tamaño de pantalla).

He mirado diferentes temas en el foro pero algunos enlaces no funcionan me sale error 404 pagina no encontrada. He intentado ver un componente creado por Obiwuan en su página ( http://www.clubdelphi.com/users/llsoft/ ) ofrecía un componente que creo que se llama TFromScaler, pero me sale error 404.

Tambien he probado los componentes Align, Anchors y Constraints, tanto del from como de los componentes que tiene, pero no he sacado nada en claro aun (necesito una pequeña ayudita sobre esto).

Gracias.

white_zombie
08-01-2009, 13:54:36
Hola, con la propiedad align se puede hacer pero no todos los componentes la tienen, para hacer lo que pides por ejemplo con un boton utilizaria el evento Onresize de la forma.


procedure TForm1.FormResize(Sender: TObject);
begin
Button1.Left:=0;
Button1.Top:=0;
Button1.Width:=Form1.ClientWidth;
Button1.Height:=Form1.ClientHeight;
end;


Un saludo.

emeritos
09-01-2009, 09:56:31
No se como hacerlo exactamente.
En el align del from1 lo tengo a alClient y si en el evento OnRisize pongo lo que me digiste en el bottom1 desaparece al ejecutarlo porque Form1.ClientHeight toma un valor de aproximadamente 751 (muy alto).

Mi problema radica que estoy programado en una pantalla de mas pulgadas que en la que despues puede ejecutarse y se me sale de pantalla.

Gracias.

white_zombie
09-01-2009, 13:25:53
Tengo algunas dudas, las pulgadas de un monitor son indiferentes lo importante es la resolución pantalla.

Con tu primera pregunta entendia que tenias un form y querias que un componente (el que sea) ocupase todo el formulario y el codigo que puse era para eso. El boton no desaparece si no que todo lo que ves es el boton.

Si puedes explicame mejor lo que quieres, me da la sensacion que lo quieres es que los componentes aumenten de tamaño a la vez que el formulario pero no que tengan el mismo tamaño que el formulario.

Un saludo.

Lepe
09-01-2009, 14:31:25
Yo diría que necesitas usar es la propiedad Anchors.

Por ejemplo, el diálogo de "Guardar como" de windows, puedes cambiar el tamaño y cada componente se hace más alto y/o ancho.

Pon dos controles en el form a uno le pones todos los anclajes (anchors) en false y al otro déjale Left y top a true. Cambia el tamaño de la ventana (si lo haces en tiempo de ejecución, mejor). Verás como se comportan de forma distinta.

Lo importante utilizando Anchors, es que definas el tamaño mínimo que ha de tener la ventana y sobre ese tamaño pones los controles y sus anchors.

Evita cambiar el tamaño de esa ventana en tiempo de diseño (puede descuadrarte algunas cosas), para hacerte a la idea, maximiza la ventana (en tiempo de diseño) y después la restauras.

También dispones de la propiedad Constraints en la que puedes definir el máximo/mínimo ancho que cada control puede tener, evitando que unos se solapen con otros al cambiar de tamaño. Para ese menester, también puedes usar paneles distintos, uno alineado a la izquierda y otro al cliente, de esa forma tu control en el panel de la izquierda nunca se solapa con el control en otro panel distinto.

Usando esto, no necesitas ningún componente externo y tu aplicación quedará fenomenal ;).

Saludos

Novás
09-01-2009, 19:14:52
Hola, en la página web de torry's puedes encontrar el control form autosize, yo lo utilizo y va muy bien.

Espero que te sirva