PDA

Ver la Versión Completa : Centrar label en formulario


Ramsay
05-02-2016, 21:33:25
Hola , estoy tratando de lograr crear un label que se posicione perfectamente al medio del form teniendo en cuenta el tamaño de la letra.

Mi codigo :


procedure form123();
var
new_label: TLabel;
var
form_new: TForm;
begin

form_new := TForm.Create(nil);

new_label := TLabel.Create(form_new);

form_new.Caption := 'hola';
form_new.Width := 500;
form_new.Height := 300;

new_label.Alignment := taCenter;
new_label.Layout := tlCenter;
new_label.Parent := form_new;
new_label.Caption := text;
new_label.Font.Color := clRed;
new_label.Font.Size := 27;
new_label.AutoSize := False;

// new_label.Top := form_new.Height div 2;
// new_label.Left := form_new.Width div 2;

new_label.Left := (form_new.Width - new_label.Width) div 2;

new_label.top := (form_new.Height - new_label.Height) div 2;

new_label.Show;

form_new.Show;

end;


Casi lo logro pero el label esta un poco mas abajo y un poco mas a la derecha del verdadero centrado. ¿ Alguien me podria ayudar ?

AgustinOrtu
05-02-2016, 23:02:57
Fijate de esta manera:


procedure TForm1.FormCreate(Sender: TObject);
var
ALabel: TLabel;
begin
ALabel := TLabel.Create(Self);
ALabel.Parent := Self;
ALabel.Align := alClient;
ALabel.Alignment := taCenter;
ALabel.Layout := tlCenter;
ALabel.Caption := 'Texto centrado';
end;

Ramsay
05-02-2016, 23:53:23
Genial.

Tengo otra duda con este codigo :


procedure form_123();
var
form_new: TForm;
begin
form_new := TForm.Create(nil);
form_new.Left := 800;
form_new.Top := 800;
form_new.Update;
form_new.Show;
end;


Tecnicamente deberia posicionar mi formulario donde quiere usando left y top pero nunca se ponen en lugar correcto. ¿ Cual es el error ?

AgustinOrtu
06-02-2016, 00:24:28
Revisa la propiedad position, que no sea defaultPosOnly

Ramsay
06-02-2016, 01:56:57
Era eso , hecho , gracias.