| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
rockfavc Cmdr


Registrado: 23 Ago 2002Mensajes: 138Ubicación: Colombia (Medellín)
|
Publicado: Jue 05 Ago, 2004 11:02 pm Asunto: Alinear objetos |
|
|
Hola foristas!
Como puedo alinear componentes al centro de la pantalla por código, así como se puede hacer con la opción del IDE en el menú View que se llama Alignment Palette
Muchas gracias |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 06 Ago, 2004 12:08 am Asunto: |
|
|
Depende que tipo de componentes, obiamente, algunos, si se puden otros. no por ejemplo.
un form, se alinea, dentro de la pantalla, y un boton.. no, creo
debes hacerlo dentro de las propiedade del la pantalla
Screen->Width y Screen->Height
por el momento.. _________________
 |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Vie 06 Ago, 2004 8:05 am Asunto: |
|
|
Hola rockfavc.
En el evento OnCreate() del TForm que quieres centrar coloca el siguiente código (está escrito de memoria pero espero que funcione; lo hice hace tiempo y ya no me acuerdo):
| Código: | void __fastcall Form1::OnCreate(TObject *Sender){
Left=(Screen->Width-Width)/2;
Top=(Screen->Height-Height)/2;
} |
Un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
rockfavc Cmdr


Registrado: 23 Ago 2002Mensajes: 138Ubicación: Colombia (Medellín)
|
Publicado: Vie 06 Ago, 2004 2:31 pm Asunto: |
|
|
Gracias a todos por sus respuestas.
Lo que deseo hacer es que en una form tengo un GroupBox y dentro de el tengo un Label el cual tengo centrado, y en tiempo de ejecución le cambio la propiedad caption y este no queda centrado.
El Label tiene la propiedad Alignment en taCenter y no funciona.
Gracias |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Mar 10 Ago, 2004 12:17 pm Asunto: |
|
|
Hola rockfavc. En vez de usar un TLabel yo probaría a escribir directamente en el canvas con la función TCanvas->TextOut(X,Y,Texto);
La coordenada Y es la altura a la que quieres poner el texto (en principio será fija).
Texto es el caption del antiguo TLabel.
Y la coordenada X es la que debes calcular para que el texto te quede centrado. Para ello, con la función del TCanvas llamada GetTextWidth(Texto) o algo así (te lo estoy escribiendo de memoria y no la tengo muy buena) obtienes la anchura en píxels del texto. Luego, para centrarlo, obtiener el ancho disponible, que supongo que será el del TGroupBox donde tienes el antiguo TLabel. Y con esto calculas la X que necesitas:
| Código: | X=(TGroupBox->Width-Canvas->GetTextWidth(Texto))/2; |
Luego sólo tienes que "escribir" o pintar el texto así:
| Código: | Canvas->OutText(X,Y,Texto); |
Espero que se haya entendido.
Un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Mar 26 May, 2009 1:10 am Asunto: |
|
|
| Código: |
Canvas->TextOutA(x,y,"xx");
|
_________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
juanma Cmdr

Registrado: 17 Nov 2005Mensajes: 127Ubicación: Almeria - España
|
Publicado: Mar 26 May, 2009 8:48 am Asunto: |
|
|
| Lo sencillo es con el TLabel, posiblemente no te centre el texto porque lo tengas en Autosize, si lo pones a false y el label le pones un ancho suficiente para lo que quieres escribir, el texto te saldrá centrado (y propiedad alignment -centrar). |
|
| Volver arriba |
|
 |
|