PDA

Ver la Versión Completa : siempre al centro


JoseSagas
27-06-2012, 17:00:03
alguien podria decirme como ahcer que un label siempre este al centro y si digamos le cambio el texto en tiempo de corrida como hago que se mantenga en el centro, digamos si se lo cambio por un texto mas corto o mas largo que si se vea el nuevo texto en el centro y no qe comienze del centro hacia la deracha o que lo tenga que poner desde la izquierda para ver si asi queda bien... el que sepa porfas que me diga :) gracais

roman
27-06-2012, 17:22:16
Pon su propiedad Algnment en taCenter.

Además, su propiedad AutoSize debe estar en false para que puedas establecer el ancho de la etiqueta sobre el cúal se va a centrar el texto.

// Saludos

JoseSagas
27-06-2012, 18:15:38
pero esa taCenter, es el texto no el label completo que quede digamos con el top donde yo desee y el left que se vaya ajustando para que siempre se vea centrado en el form

ElDioni
27-06-2012, 18:39:14
Hola,

entiendo que lo que se tiene que ver centrado es el texto, según lo que te apunta roman lo que tienes que hacer es igualar el ancho del label al ancho del formulario, poner Autosize del label a false y si no quieres que se vea el color sólido del label poner su propiedad transparent a true.

Saludos.

roman
27-06-2012, 18:39:25
pero esa taCenter, es el texto no el label completo que quede digamos con el top donde yo desee y el left que se vaya ajustando para que siempre se vea centrado en el form

Pero, ¿para qué quieres centrar el label si puedes centrar el texto? Esto es, si quieres centrar el label en el formulario, puedes ponerlo de manera que ocupe todo el ancho del formulario y entonces con taCenter el texto aparecerá centrado en la ventana.

Ahora bien, si el problema es que ese label tape otros controles en caso de ponerlo a todo lo ancho o que le pongas un color de fondo de maner que no se vería bien a todo lo ancho, entonces puedes ajustar su propiedad Left en el evento Resize del formulario:


procedure TForm1.FormResize(Sender: TObject);
begin
Label1.Left := (ClientWidth - Label1.Width) div 2;
end;


// Saludos

ecfisa
27-06-2012, 18:40:49
pero esa taCenter, es el texto no el label completo que quede digamos con el top donde yo desee y el left que se vaya ajustando para que siempre se vea centrado en el form
Hola Jose.

Es que no estaba muy claro que era lo que querías centrar. Para que el Label se centre horizontalmente en el form podes hacer:

Label1.Left:= (ClientWidth - Label1.Width) shr 1; // (tuForm.ClientWidth)


Saludos.

JoseSagas
27-06-2012, 19:25:36
muchas gracias por la ayuda :)
roman hice exactamente lo mismo que pusiste ahi jajajaja las grandes mentes piensan igual :D jajaajaj
gracias