Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Resolución de Pantalla (https://www.clubdelphi.com/foros/showthread.php?t=77940)

lmpadron 07-03-2012 21:28:17

Resolución de Pantalla
 
Hola Amigos

Me parece que es mi turno de postear el archiconocido problema de la resolución de pantalla, sucede que tengo el problema típico, mi aplicación desarrollada sobre 1024x768 y mis clientes sobre cualquier otra resolución :) a ellos les encanta ver como me supero dia a dia XD !!!
Estube buscando en los foros del club y encontré muchas respuestas para delphi (que no entendí) y una sobre builder del amigo ecfisa en este post con este código

Código:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
int  Ancho=1024, Alto=768; /* Resolución en que compilás la aplicación */

  if(Screen->PixelsPerInch == 96){
    Height = Height * Screen->Height / Alto;
    Width =  Width * Screen->Width / Ancho;
  }
  else if(Screen->PixelsPerInch == 120){
    Height = Height * Screen->Height / Alto;
    Height = Height + ((Height*15) / 100);
    Width = Width * Screen->Width / Ancho;
    Width = Width + ((Width*15) / 100);
    ScaleBy(Screen->Width, Ancho);
    Top = Top - 70;
    Left = Left - 70;
  }
  else {
    Height = Height * Screen->Height / Alto;
    Width = Width * Screen->Width / Ancho;
    ScaleBy(Screen->Width, Ancho);
  }
}

Pensé que podría solucionar el problema siguiendo los ejemplo y las indicaciones de ese post pero sucede que aunque lo pongo en el FormCreate del MainForm no me funciona. Alguna sugerencia ?

Gracias de antemano

ecfisa 07-03-2012 22:39:40

Hola Impadrón.

No sé que problema te está presentando, pero releyendo el enlace veo que mencioné que sólo debe incluirse en el form principal, y esto es cierto a medias.
Lo es para las aplicaciones MDI (no sé de donde saqué la idea de que la aplicación de washiloo era MDI... :o ) pero no es así para las SDI, en estas últimas hay que ejecutar el código para cada form.

Saludos.

duilioisola 07-03-2012 22:40:58

¿Y cuál es el problema?

lmpadron 12-03-2012 15:19:48

Cita:

Empezado por duilioisola (Mensaje 427103)
¿Y cuál es el problema?

Bueno el problema es que no me funciona, tengo puesto el código en el Main y aunque no funcionara para el resto de la aplicación al menos debería funcionar en el Main verdad ?

ecfisa 12-03-2012 16:56:30

Hola impadron.

Creo que la consulta de duilioisola (y la mía también) viene por saber que comportamiento esperas de ese código y que no está realizando.

Saludos

lmpadron 12-03-2012 21:40:01

Cita:

Empezado por ecfisa (Mensaje 427427)
Hola impadron.

Creo que la consulta de duilioisola (y la mía también) viene por saber que comportamiento esperas de ese código y que no está realizando.

Saludos

Buen comienzo jajaja, bueno creo, en caso de que no halla entendido mal, que debe ser capas de redimencionar mis Form de acuerdo a la resolución de pantalla que use el usuario, o sea que se vea igual en mi pc, donde uso 1024x768 o en cualquier otra pc con cualquier otra resolución, y bueno en caso de que eso sea lo que hace pues no lo esta haciendo, tal ves entendí mal el código !!! :confused::confused::confused::confused:

ecfisa 13-03-2012 10:48:22

Hola Impadrón.

Me parecía extraño que no te funcionara ya que lo uso hace mucho tiempo con buén resultado tanto en Delphi como en C++.
No recuerdo de donde copié el código en una oportunidad y no he podido encontralo nuevamente. (como ya comenté anteriormente aquí ).

No sé como (por que creo haber copiado y pegado) pero definitivamente omití o borré una línea en el enlace que mencionas arriba... :o
Código:

int  Ancho=1024, Alto=768;

 if(Screen->PixelsPerInch == 96){
    Height = Height * Screen->Height;
    Width =  Width * Screen->Width;     
  ScaleBy(Screen->Width, Ancho);  // <---- ESTA LINEA
  }
  else if(Screen->PixelsPerInch == 120){
    Height = Height * Screen->Height / Alto;
    Height = Height + ((Height*15) / 100);
    Width = Width * Screen->Width / Ancho;
    Width = Width + ((Width*15) / 100);
    ScaleBy(Screen->Width, Ancho);
    Top = Top - 70;
    Left = Left - 70;
  }
  else {
    Height = Height * Screen->Height / Alto;
    Width = Width * Screen->Width / Ancho;
    ScaleBy(Screen->Width, Ancho);
  }

Ya hice la corrección en el enlace para evitar otro equívoco.

Un saludo.

lmpadron 13-03-2012 14:26:22

jajajjaa, gracias por la linea !!!! un saludos y gracias por su ayuda


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

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