Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как сделать выравнивание нескольких кнопок TSpeedButton, расположенных в TEdit?


antarey

Вопрос

В динамике создаю несколько дочерних SpeedButton для Edit.

Длину кнопки вычисляю исходя из Как вычислить размер текста?

Мне надо чтобы SpeedButton -ы были слева и при уменьшении размеров формы уменьшался размер бутонов.

Как бы подходит FitLeft , но два нюанса - размер бутона получается больше чем надо и бутоны размещаются друг на друге, надо выравнивать левый край следующего бутона через падинг на ширину предыдущего

Да, и при увеличении размеров формы необходимо чтобы размеры бутонов ставали на место :)

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Создайте TListBox с нужной высотой, и свойству ItemHeight задайте то же значение.

StyleLookup = 'transparentlistboxstyle'

ShowScrollBars = False

Columns = кол-во кнопок

 

Создайте нужное количество TListBoxItem, равное кол-ву кнопок.

У каждого TListBoxItem свойство Selectable = False, Text = ''.

Разместите ваши кнопки в TListBoxItem со свойством Align = Client (можете добавить Margins для кнопок...).

 

При изменении размеров TListBox, будут пропорционально меняться размеры всех TListBoxItem, и, конечно, размеры всех кнопок, расположенных в них...

 

Типа так. Это простой вариант, где не надо ничего "считать"... Надеюсь все ясно объяснил.

Ссылка на комментарий
  • 0

Прикольная реализация, объяснение довольно доходчивое :).

Я уже в принципе реализовал - пришлось высчитывать левое положение по ширине предыдущего контрола. 

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...