![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
es un problema con el que nos hemos encontrado:
Puedes detectar la resolucion de la pantalla con el Screen.Width y screen.Heigth y saber si la pantalla es mas grande o mas pequeña de 1024x768 con esto y una regla de tres sabes en que tanto porciento es la pantalla mas pequeña. i diras para que me sirve todo esto?? pues puedes usar una funcion que se llama scaleby(M, D) puedes decirle cuanto es la modificacion de los componentes Código:
Scaleby(75, 100) //esto es un 75% te podria dar una pista de que puedes hacer una rutina generica usando la rutinas de obtener las propiedades, del TypInfo. espero que esto te ayude
__________________
Gami ------------------------------------------------------------------ La necesidad no tolera tardanzas pero mas vale tarde que nunca |
|
#2
|
|||
|
|||
|
necesito esto lo antes posible y creo que me demoraria demasiado, gracias de todas formas.... sigo en espera de mas sugerencias....
|
|
#3
|
||||
|
||||
|
vale lo acepto me equivoque usa esto y ya lo tienes si quieres cambiar el ajuste juegas con las cantidades
Código:
Procedure AjustForm(Form:TForm);
begin
With Form do
begin
ScaleBy (75, 100);
Width := Width * 0.75;
Height := Height * 0.75;
end;
end;
__________________
Gami ------------------------------------------------------------------ La necesidad no tolera tardanzas pero mas vale tarde que nunca |
|
#4
|
|||
|
|||
|
gracias mil por tu ayuda, pero no, no consigo una relatividad entre los objetos y la form, todo se mueve de lugar tratando de ajustarse... keep on trying
![]() |
|
#5
|
||||
|
||||
|
Código:
Procedure AjustForm(Form:TForm);
var I:Integer;
begin
With Form do
begin
For I:= 0 to ComponentCount - 1 do
begin
if (Components[i] is Tcontrol) then
begin
if (Components[i] is TWinControl) then
begin
Twincontrol(Components[i]).ScaleBy (75, 100);
end else begin
Tcontrol(Components[i]).Width := Trunc(Tcontrol(Components[i]).Width * 0.75);
Tcontrol(Components[i]).Height := Trunc(Tcontrol(Components[i]).Height * 0.75)
end;
Tcontrol(Components[i]).Left := Trunc(Tcontrol(Components[i]).Left * 0.75);
Tcontrol(Components[i]).Top := Trunc(Tcontrol(Components[i]).Top * 0.75);
end;
end;
Width := Trunc(Width * 0.75);
Height := Trunc(Height * 0.75);
end;
end;
![]()
__________________
Gami ------------------------------------------------------------------ La necesidad no tolera tardanzas pero mas vale tarde que nunca |
|
#6
|
||||
|
||||
|
Para no tener que "poner a escala" todos los componentes puedes poner scaleby a el form en el evento FormCreate, asi cuando se muestre de una vez crea a escala todos tus componentes.
Última edición por Diego827 fecha: 10-05-2011 a las 19:27:23. |
|
#7
|
|||
|
|||
|
Hola...
Espero que después de 6 años, la respuesta le sea útil ![]() Saludos... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|