Конструктор форм VCL предлагает розовые рекомендации по выравниванию элементов управления по соответствующим базовым строкам текста:
Но насколько я могу судить, это не работает для меток и флажков. Обновление: Это работает для меток, если вы разместите элементы управления точно , например по Ctrl - стрелка . Это вроде работает для флажков - см. Снимок экрана.
Теперь в некоторых формах я создаю элементы управления в коде, например
ed := TEdit.Create(Self);
ed.SetBounds(...);
ed.Parent := SomePanel;
и т. Д. Как я могу убедиться, что их базовые линии текста выровнены? Я бы хотел, чтобы это было для правок, комбинированных списков, меток и флажков. Результат должен выглядеть так (без красной линии, конечно :-)):
Изменить: Мой текущий подход - вызвать что-то вроде 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;
Моя цель - заменить его на что-то более надежное и менее взломанное.