Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-09-2011
washiloo washiloo is offline
Registrado
NULL
 
Registrado: sep 2011
Posts: 7
Poder: 0
washiloo Va por buen camino
Resolución de la pantalla

Hola a todos, tengo una consulta respecto a la visualización de un formulario creado con el C++ Builder.

Supongamos que en una PC creo un formulario y lo lleno de objetos (Edits, Labels, Buttons, etc.). Con el propio C++ Builder les doy a cada uno el tamaño que desee, siendo la proporción entre estos tamaños lo que en realidad me interesa (y no el tamaño absoluto en sí).

Ahora bien, cuando compilo el programa y lo llevo a otra PC, que tenga o bien un monitor de tamaño diferente (no sé si esto influye) o una resolución gráfica diferente, entonces ocurre que la proporción se pierde y en consecuencia no se logra una visualización adecuada.

Mi idea es lograr que, para la resolución gráfica que estoy utilizando, la combinación de tamaños de los diferentes objetos en mi programa sea constante y relativa a la misma. Es decir, si la resolución de mi pantalla es A x B pixels, cada objeto "i" tendrá un tamaño a(i) x b(i), donde a(i) es una fracción constante de A y b(i) una fracción constante de B.

La pregunta concreta es: existe algún método estandarizado para lograr esto? Si no es así, no importa, lo trataré de descubrir por mí mismo, pero entonces tengo otra pregunta: cuál es el comando que devuelve la resolución actual en píxeles?

Muchas gracias de antemano!

F.E.G.
Responder Con Cita
  #2  
Antiguo 22-09-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Probá lo siguiente:
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;
    ScaleBy(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);
  }
}
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 13-03-2012 a las 10:27:53.
Responder Con Cita
  #3  
Antiguo 23-09-2011
washiloo washiloo is offline
Registrado
NULL
 
Registrado: sep 2011
Posts: 7
Poder: 0
washiloo Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Probá lo siguiente:
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);
  }
}
Saludos.
Muchas gracias por tu respuesta. Tendría que hacer esto con la altura y ancho de cada objeto de mi formulario?
Responder Con Cita
  #4  
Antiguo 23-09-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Tendría que hacer esto con la altura y ancho de cada objeto de mi formulario?
Hola washiloo.

No, sólo en el form principal.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Resolucion de pantalla hermes_32 Varios 5 13-06-2015 23:18:00
resolucion de la pantalla??? Negriz C++ Builder 3 19-05-2008 00:52:01
Resolucion de pantalla oregon Windows 1 22-03-2007 15:09:43
Resolucion de pantalla luxus Gráficos 1 04-10-2005 00:09:30
Resolución de pantalla kalimero Varios 8 05-11-2003 21:41:47


La franja horaria es GMT +2. Ahora son las 01:43:31.


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
Copyright 1996-2007 Club Delphi