Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   redimensionar forms (https://www.clubdelphi.com/foros/showthread.php?t=85270)

anubis 22-02-2014 23:44:34

redimensionar forms
 
buenas. ya vi varios post referentes a esto a redimensionar forms en función del tamaño del monitor. cosa que alguno dice, que puede ser cierto, porque no se diseña desde un monitor o para un monitor más pequeño desde el principio porque luego pasa lo que pasa :-(
la pregunta final es si se puede sin tener que rehacer todo
gracias y perdón

ecfisa 24-02-2014 02:29:55

Hola anubis.

Fijate si lo comentado en este enlace es lo que estas buscando: Aplicación maximizada descolocada en la pantalla

Saludos :)

anubis 26-02-2014 03:47:30

Gracias eficsa, pero no veo muy bien el detalle, ya probe el codigo que pusiste:
Cita:

Código Delphi [-]
procedure TForm.FormCreate(Sender: TObject); const   Alto= 768;       // 768, ...   Ancho= 1024;  // 1366, ... begin   if Screen.PixelsPerInch = 96 then   begin    Height := Height * Screen.Height div Alto;    Width := Width * Screen.width div Ancho;    ScaleBy(Screen.Width,Ancho);  end  else if Screen.PixelsPerInch = 120 then  begin    Height := Height *Screen.Height div Alto;    Height := Height+((Height*15) div 100);    Width := Width * Screen.Width div Ancho;    Width := Width+((Width*15) div 100);    ScaleBy(Screen.Width,Ancho);    Top := Top - 70;    Left := Left - 70;   end   else   begin     Height := Height * Screen.Height div Alto;     Width := Width * Screen.width div Ancho;     ScaleBy(Screen.Width,Ancho);   end; end;

Estoy probando sobre un windows xp virtualbox cambiando la resolucion y no funciona bien.
No se si es lo que se pretendia, pero desgraciadamente, lo que yo queria es que un proyecto realizado primeramente para pantallas algo grandes y que se ve bien, ahora que tengo que pasarlo a otra computadora con pantalla de resolucion mas pequeña, me lo escale como si fuera la grande, es decir, que se vea a razon de la pantalla sin tener que rediseñar de nuevo todo el form.

Si, cierto, y repito que teneis razon en otro post, que esas cosas se preveen porque luego pasa lo que pasa. :(

ecfisa 26-02-2014 05:00:48

Hola anubis.

Siempre que el equipo a instalar la aplicación soporte la resolución en que se compiló, en Delphi me ha funcionado.

Ya que no lo había intentado antes, hice una prueba en Lazarus y tambíen funciona. Para realizarla, compilé un form con unos cuantos controles en resolución 1024x768 que es soportada por la mayoría.

El código de prueba que usé es similar al anterior:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
const
  // Valores de resolución del monitor al momento de compilar 
  Ancho = 1024; 
  Alto  = 768;        
begin
  if Screen.PixelsPerInch = 96 then
  begin
   Height := Height * Screen.Height div Alto;
   Width := Width * Screen.width div Ancho;
   ScaleBy(Screen.Width,Ancho);
 end
 else if Screen.PixelsPerInch = 120 then
 begin
   Height := Height *Screen.Height div Alto;
   Height := Height+((Height*15) div 100);
   Width := Width * Screen.Width div Ancho;
   Width := Width+((Width*15) div 100);
   ScaleBy(Screen.Width,Ancho);
   Top := Top - 70;
   Left := Left - 70;
  end
  else
  begin
    Height := Height * Screen.Height div Alto;
    Width := Width * Screen.width div Ancho;
    ScaleBy(Screen.Width,Ancho);
  end;
end;
Luego pasé el ejecutable a un equipo de escritorio ejecutándolo en resoluciones desde 800x600 a 1280x768 y en todas mostró el form adaptado a la resolución.

Pero no pude probar con Windows XP virtualbox ya que no lo dispongo, tal vez allí tenga un comportamiento diferente.

Saludos :)

anubis 02-03-2014 07:12:36

gracias eficsa,

lo que estoy viendo es que si aplico el codigo al programa que hice, en la resolucion que lo hice me sale todo descolocado, pero si cambio la resolucion de la pantalla a 1024x768, mas o menos, se ve bien.

Lo que entiendo es que el form lo tengo que hacer es como si fuera 1024x768, si lo hago a mas resolucion ya hay un problema porque se pierde en la pantalla.

Lo que no entiendo es el tema del screen.pixelsperinch=96, eso lo da el monitor o es una referencia standard porque ya probe a cambiar esa referencia y da lo mismo a efectos.


Un saludo y gracias amigo

ecfisa 02-03-2014 08:19:15

Hola anubis.

Revisa los puntos que se mencionan en este enlace: Multi-Resolution Delphi Applications, aunque tratan sobre Delphi estimo que tienen que ser igualmente aplicables a Lazarus.

Saludos :)


La franja horaria es GMT +2. Ahora son las 17:14:51.

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