Дизайнер форм 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;
Моя цель - заменить его чем-то более надежным и менее хакерским.