![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет. Нашёл такой вот пример 1.rar
Там размер кнопок относителен к размеру формы. Но если добавить панель с кнопками, то кнопки размер не меняют. Пробовал писать событие на resize панели, даже весь код дублировал с новыми переменными и данными панели, всё равно не получается. |
|
#2
|
||||
|
||||
|
версия delphi какая?
|
|
#3
|
|||
|
|||
|
Цитата:
Я наверно немножко некорректно задал вопрос, не меняют размер те кнопки, которые лежат на панели. Все остальные и сама панель работают нормально Последний раз редактировалось Stanei, 28.12.2015 в 07:29. |
|
#4
|
||||
|
||||
|
А кнопки в списке контролов формы имеются? Если они как в контейнере в панеле, то логично, что метод масштабирования их не видит, ведь они не принадлежат к форме в явном виде.
|
|
#5
|
|||
|
|||
|
Цитата:
Так а что нужно сделать что бы они работали? Как их добавить с список? |
|
#6
|
||||
|
||||
|
В общем проблема у вас следующая. Любой контрол на форме, потенциально может стать контейнером для других контролов. Этакая матрешка получается. Ваша панель как раз и становится таким контролом - контейнером, когда вы выделяете ее и создаете кнопку. Получается, что вам нужны две рекурсивные процедуры, одна будет обходить все контролы, с учетом вложений и записывать исходные размеры компонентов в массив, как это делается в событии создания формы. Вторая будет уже изменять размер и положение опять же ко всем контролам, включая и контролы-контейнеры.
Как альтернативный вариант, можно попробовать обойтись без контролов-контейнеров положив все ваши панели, кнопки и т.д. на форму независимо друг от друга - тогда ваш пример будет правильно работать т.к. контролов-контейнеров не будет. |
|
#7
|
|||
|
|||
|
Цитата:
Спасибо, уже всё решилось |