Label-ы зависящие от ширины друг друга.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Label-ы зависящие от ширины друг друга.

Сообщение jsa » 22.07.2020 07:46:30

Здравствуйте.
Существует ли механизм сдвига Label и DBText в зависимости от того какой ширины получилось содержимое в лабеле слева?
Ну т.е. чтобы Left был привязан к правому краю предыдущего объекта (слева), а не к левому краю формы/панели ?
Правый край прдыдущего объекта может изменяться т.к. там стоит autosize=1 и строка может оказаться любой длины.

Извиняюсь за корявую формулировку, плохо владею терминологией.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Re: Label-ы зависящие от ширины друг друга.

Сообщение Снег Север » 22.07.2020 08:11:16

Проверять событие OnResize одного контрола и передвигать второй, например.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2994
Зарегистрирован: 27.11.2007 16:14:47

Re: Label-ы зависящие от ширины друг друга.

Сообщение jsa » 22.07.2020 08:25:32

Ну это очевидно. Я на всякий случай спросил, есть ли какая автоматика.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Re: Label-ы зависящие от ширины друг друга.

Сообщение Снег Север » 22.07.2020 08:55:23

Можно еще попробовать View->Anchor Editor - привязать начало одного контрола к концу второго.
Untitled.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2994
Зарегистрирован: 27.11.2007 16:14:47

Re: Label-ы зависящие от ширины друг друга.

Сообщение serbod » 22.07.2020 09:57:54

Я делал для Delphi 7 автоматизатор масштабирования и размещения контролов, чтобы при изменении размеров шрифта от 6 до 20 в контролах и изменении размеров формы сохранялись пропорции и взаимное расположение.

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);
Аватара пользователя
serbod
постоялец
 
Сообщения: 449
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: Label-ы зависящие от ширины друг друга.

Сообщение jsa » 22.07.2020 12:51:14

Снег Север писал(а):Можно еще попробовать View->Anchor Editor - привязать начало одного контрола к концу второго.

Вот ведь..., я открывал когда-то эти настройки, и не догадался для чего они.
Спасибо.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Роман1971, Yandex [Bot] и гости: 25

Рейтинг@Mail.ru