Программно расположить метку (слева, сверху)

#delphi

#delphi

Вопрос:

Может быть, это тривиально (или задавалось ранее, но я не вижу похожих вопросов, потому что мой браузер искажает их все), но как вы программно размещаете метку в положение слева или сверху?

Комментарии:

1. Чтобы выровнять элемент управления , вы можете расположить его вручную и задать его Anchors , или вы можете установить его Align свойство (работает нормально для верха и низа). Чтобы задать выравнивание текста внутри элемента управления, используйте Alignment для выравнивания по горизонтали и Layout для выравнивания по вертикали. (Это предполагает VCL.) В этом случае вы, вероятно, захотите отключить AutoSize .

2. Или вы имеете в виду полностью вручную? Если это так, просто установите Left и Top свойства.

3. Я знаю, что могу сделать это вручную, но меня интересует программное обеспечение…

4. Ответ точно такой же. Все эти свойства доступны во время выполнения. (Например, Label1.Top := 20; Label1.Left := 20 . Вы не сказали, когда вы хотите это сделать, но в OnCreate обработчике формы это сработает. Или в OnClick обработчике кнопки. В некоторых случаях вы хотите сделать это в форме OnResize .)

5. тогда спасибо, Андреас…

Ответ №1:

Андреас Рейбранд дал вам пояснения в своих комментариях. Чтобы было понятно, вот реальный пример кода, в котором метка размещается прямо над кнопкой. Я также установил для свойства visible значение TRUE, чтобы метка стала видимой.

 procedure TForm1.Button1Click(Sender: TObject);
begin
    Label1.Left    := Button1.Left;
    Label1.Top     := Button1.Top - Label1.Height;
    Label1.Visible := TRUE;
end;