Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Resolucion grafica de aplicacion (https://www.clubdelphi.com/foros/showthread.php?t=18096)

galmacland 01-02-2005 15:29:58

Resolucion grafica de aplicacion
 
hola, he realizado una aplicacion con una resolucion grafica de 1024x768, se visualiza perfectamente segun su diseño, pero hay usuarios que harian uso de esta y su resolución no excede de los 800x600 y se ve demasiado grande el programa, no se ajusta a la pantalla muy bien y es bastante incomodo de trabajar, quisiera que se ajustara relativamente a la resolucion, como hago...
gracias por las sugerencias........
:confused:

argami 01-02-2005 15:39:22

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%
para hacer esto te toca lo mas puñetero tienes que repasarte cada uno de los componentes que hay en la pantalla hacerle el Scaleby y ademas con el porcentaje tendrias que ajustar la fuente, el left y el top.

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

galmacland 01-02-2005 15:46:29

gracias pero....
 
necesito esto lo antes posible y creo que me demoraria demasiado, gracias de todas formas.... sigo en espera de mas sugerencias....

argami 01-02-2005 15:58:06

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;


galmacland 01-02-2005 16:17:30

pues...no, aun nada
 
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
:confused:

argami 01-02-2005 16:28:37

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;

si esto te va solo hay que ajustar la fuente espero que te sirva :confused:

Diego827 10-05-2011 19:23:52

Para no usar Scaleby en todos los componentes
 
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.

maeyanes 10-05-2011 19:43:43

Hola...

Espero que después de 6 años, la respuesta le sea útil :D :D :D


Saludos...

Diego827 10-05-2011 21:24:45

Cita:

Empezado por maeyanes (Mensaje 399585)
Hola...

Espero que después de 6 años, la respuesta le sea útil :D :D :D


Saludos...

Pregunta: ¿Cuando tienes una duda informática que haces?:

1. Buscas en un foro un tema que concuerde con tu duda y obviamente encuentres la solución allí: NO TE IMPORTA SI FUE 20000 AÑOS ATRAS IGUAL TE SIRVE. SI no creas un hilo nuevo.

2. Un nuevo hilo de primas a primeras. (y a esperar que "alguien" responda).

Al menos yo primero busco y si no encuentro a crear un tema.

Ahora cuando alguien lo desee y busque puede que mi comentario le ayude, al menos esa es la intensión. ;)


La franja horaria es GMT +2. Ahora son las 00:36:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi