Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Maximar formularios y componentes (https://www.clubdelphi.com/foros/showthread.php?t=81602)

borlandpablo 29-11-2012 11:40:07

Maximar formularios y componentes
 
Buenas a todos, tengo una duda sobre si se podría maximizar formularios de manera que al maximizar una ventana, se maximice proporcionalmente todos sus componentes, por ejemplo: si tengo un formulario con un DBGrid y un TImage, si no está maximizada y lo quiero maximizar que se maximice de manera proporcional. No se si me explico.

Un saludo.

ElDioni 29-11-2012 11:54:08

Tendrías que ver la propiedad Align de los componentes.

Saludos.

Faust 29-11-2012 16:23:10

Cita:

Empezado por ElDioni (Mensaje 450828)
Tendrías que ver la propiedad Align de los componentes.

Saludos.

Yo te recomiendo poner la propiedad Anchor checked en sus cuatro opciones...

Por ejemplo, el dbgrid lo ajustas al tamaño que quieras que mantenga y después seteas dando checked a todas las opciones de Anchor...

En código sería:

Código Delphi [-]
DBGrid1.Anchors:= [akLeft, akTop, akRight, akBottom];

Pruébalo

Edito... sorry, lo puse en delphi, adáptalo a C++ builder

borlandpablo 29-11-2012 16:36:25

Pero date cuenta que si el programa lo realizo (por poner un ejemplo) en una pantalla de 800 x 600, cuando yo utilice el programa en una pantalla de 1024 x 768 y lo maximizo, tendría que tener en cuenta a qué resolución está. Lo que quiero decir es que tendré que variar el tamaño de algunos componentes según la resolución de cada pantalla.

Un saludo.

ecfisa 29-11-2012 20:20:37

Cita:

Empezado por borlandpablo (Mensaje 450869)
Pero date cuenta que si el programa lo realizo (por poner un ejemplo) en una pantalla de 800 x 600, cuando yo utilice el programa en una pantalla de 1024 x 768 y lo maximizo, tendría que tener en cuenta a qué resolución está. Lo que quiero decir es que tendré que variar el tamaño de algunos componentes según la resolución de cada pantalla.
Un saludo.

Para adaptar la presentación a diferentes resoluciones podés usar:
Código:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  int  Ancho = 800, // Aqui los valores de la resolución
      Alto  = 600; // en que la aplicación es realizada

 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.

borlandpablo 30-11-2012 00:21:45

Buenas, pero poniendo ese código no se me maximizaría los componentes no? Lo que quiero es que se maximice proporcionalmente algunos de sus componentes segun la resolucion de cada pantalla.

Un saludo.

ecfisa 30-11-2012 00:59:28

Cita:

Empezado por borlandpablo (Mensaje 450924)
Buenas, pero poniendo ese código no se me maximizaría los componentes no?

No, ese código muestra el form y los componentes en la resolución actual de forma proporcional a la resolución en que fueron compilados, no maximiza ningún elemento.

Saludos. :)


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

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