Здравствуйте.
Существует ли механизм сдвига Label и DBText в зависимости от того какой ширины получилось содержимое в лабеле слева?
Ну т.е. чтобы Left был привязан к правому краю предыдущего объекта (слева), а не к левому краю формы/панели ?
Правый край прдыдущего объекта может изменяться т.к. там стоит autosize=1 и строка может оказаться любой длины.
Извиняюсь за корявую формулировку, плохо владею терминологией.
Label-ы зависящие от ширины друг друга.
Модератор: Модераторы
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Проверять событие OnResize одного контрола и передвигать второй, например.
Ну это очевидно. Я на всякий случай спросил, есть ли какая автоматика.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Можно еще попробовать View->Anchor Editor - привязать начало одного контрола к концу второго.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- serbod
- постоялец
- Сообщения: 449
- Зарегистрирован: 16.09.2016 10:03:02
- Откуда: Минск
- Контактная информация:
Я делал для Delphi 7 автоматизатор масштабирования и размещения контролов, чтобы при изменении размеров шрифта от 6 до 20 в контролах и изменении размеров формы сохранялись пропорции и взаимное расположение.
https://github.com/serbod/NovaLib/blob/ ... scaler.pas
Рескалер контролов - автоматизатор масштабирования и размещения контролов
Меняет положение и размер контролов в соответствии с привязками сторон
https://github.com/serbod/NovaLib/blob/ ... scaler.pas
Рескалер контролов - автоматизатор масштабирования и размещения контролов
Меняет положение и размер контролов в соответствии с привязками сторон
Код: Выделить всё
Пример:
[ed11 ] [ed12]
[ed21] [ed22] [ ]
// ed11 имеет масштаб 2/3, привязан левой стороной к форме,
// правой стороной к размеру формы
SetControlPos(ControlPos, ed11, 2/3);
SetSideAnchor(ControlPos.AnchorLeft, Self, asSame);
SetSideAnchor(ControlPos.AnchorRight, Self, asSize);
AddControlPosition(ControlPos);
// ed12 привязан левой стороной к ed11, правой к границе формы
SetControlPos(ControlPos, ed12);
SetSideAnchor(ControlPos.AnchorLeft, ed11, asOpposite);
SetSideAnchor(ControlPos.AnchorRight, Self, asSame);
AddControlPosition(ControlPos);
// ed21 привязан верхней стороной к нижней стороне ed11
// левой стороной к форме
// правой стороной к ed12, его противоположной стороне (левой)
// масштаб задан 1/2
SetControlPos(ControlPos, ed21, 1/2);
SetSideAnchor(ControlPos.AnchorTop, ed11, asOpposite);
SetSideAnchor(ControlPos.AnchorLeft, Self, asSame);
SetSideAnchor(ControlPos.AnchorRight, ed12, asOpposite);
AddControlPosition(ControlPos);
// ed22 привязан левой стороной к ed21, правой стороной привязан к ed12
SetControlPos(ControlPos, ed22);
SetSideAnchor(ControlPos.AnchorLeft, ed21, asOpposite);
SetSideAnchor(ControlPos.AnchorRight, ed12, asOpposite);
AddControlPosition(ControlPos);
Снег Север писал(а):Можно еще попробовать View->Anchor Editor - привязать начало одного контрола к концу второго.
Вот ведь..., я открывал когда-то эти настройки, и не догадался для чего они.
Спасибо.
