Эквивалентно руководящим принципам дизайнера в коде

Конструктор форм VCL предлагает розовые рекомендации по выравниванию элементов управления по соответствующим базовым строкам текста: Guidelines in form designer
Но насколько я могу судить, это не работает для меток и флажков. Обновление: Это работает для меток, если вы разместите элементы управления точно , например по Ctrl - стрелка . Это вроде работает для флажков - см. Снимок экрана.

Теперь в некоторых формах я создаю элементы управления в коде, например

ed := TEdit.Create(Self);
ed.SetBounds(...);
ed.Parent := SomePanel;

и т. Д. Как я могу убедиться, что их базовые линии текста выровнены? Я бы хотел, чтобы это было для правок, комбинированных списков, меток и флажков. Результат должен выглядеть так (без красной линии, конечно :-)): base line aligned

Изменить: Мой текущий подход - вызвать что-то вроде AlignTop (8, [Edit1, ComboBox1], [CheckBox1, Label1]); на

procedure ControlArray_SetTop(const AControls: array of TControl; ATop: Integer);
var
  i: Integer;
begin
  for i := Low(AControls) to High(AControls) do
    AControls[i].Top := ATop;
end;

procedure AlignTop(ATop: Integer; const AControls: array of TControl; const ALabelLikeControls: array of TControl);
begin
  ControlArray_SetTop(AControls, ATop);
  ControlArray_SetTop(ALabelLikeControls, ATop + 3);
end;

Моя цель - заменить его на что-то более надежное и менее взломанное.

11
задан Tunaki 24 March 2016 в 19:11
поделиться