Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.12.2015, 13:47
Stanei Stanei вне форума
Новичок
 
Регистрация: 21.05.2015
Сообщения: 55
Версия Delphi: Rad Studio 10
Репутация: 10
По умолчанию Автоматический размер компонентов

Всем привет. Нашёл такой вот пример 1.rar
Там размер кнопок относителен к размеру формы. Но если добавить панель с кнопками, то кнопки размер не меняют.

Пробовал писать событие на resize панели, даже весь код дублировал с новыми переменными и данными панели, всё равно не получается.
Ответить с цитированием
  #2  
Старый 28.12.2015, 00:59
Аватар для Verevkin
Verevkin Verevkin вне форума
Прохожий
 
Регистрация: 22.06.2015
Сообщения: 45
Версия Delphi: 3...XE12
Репутация: -50
По умолчанию

версия delphi какая?
__________________
Хей-хей-хей! Только не ходите в мой сарай, лады?..
Ответить с цитированием
  #3  
Старый 28.12.2015, 07:21
Stanei Stanei вне форума
Новичок
 
Регистрация: 21.05.2015
Сообщения: 55
Версия Delphi: Rad Studio 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от Verevkin
версия delphi какая?
10 Seattle

Я наверно немножко некорректно задал вопрос, не меняют размер те кнопки, которые лежат на панели. Все остальные и сама панель работают нормально

Последний раз редактировалось Stanei, 28.12.2015 в 07:29.
Ответить с цитированием
  #4  
Старый 28.12.2015, 19:12
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

А кнопки в списке контролов формы имеются? Если они как в контейнере в панеле, то логично, что метод масштабирования их не видит, ведь они не принадлежат к форме в явном виде.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 29.12.2015, 06:30
Stanei Stanei вне форума
Новичок
 
Регистрация: 21.05.2015
Сообщения: 55
Версия Delphi: Rad Studio 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
А кнопки в списке контролов формы имеются? Если они как в контейнере в панеле, то логично, что метод масштабирования их не видит, ведь они не принадлежат к форме в явном виде.

Так а что нужно сделать что бы они работали? Как их добавить с список?
Ответить с цитированием
  #6  
Старый 29.12.2015, 21:08
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

В общем проблема у вас следующая. Любой контрол на форме, потенциально может стать контейнером для других контролов. Этакая матрешка получается. Ваша панель как раз и становится таким контролом - контейнером, когда вы выделяете ее и создаете кнопку. Получается, что вам нужны две рекурсивные процедуры, одна будет обходить все контролы, с учетом вложений и записывать исходные размеры компонентов в массив, как это делается в событии создания формы. Вторая будет уже изменять размер и положение опять же ко всем контролам, включая и контролы-контейнеры.
Как альтернативный вариант, можно попробовать обойтись без контролов-контейнеров положив все ваши панели, кнопки и т.д. на форму независимо друг от друга - тогда ваш пример будет правильно работать т.к. контролов-контейнеров не будет.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 30.12.2015, 05:28
Stanei Stanei вне форума
Новичок
 
Регистрация: 21.05.2015
Сообщения: 55
Версия Delphi: Rad Studio 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
В общем проблема у вас следующая. Любой контрол на форме, потенциально может стать контейнером для других контролов. Этакая матрешка получается. Ваша панель как раз и становится таким контролом - контейнером, когда вы выделяете ее и создаете кнопку. Получается, что вам нужны две рекурсивные процедуры, одна будет обходить все контролы, с учетом вложений и записывать исходные размеры компонентов в массив, как это делается в событии создания формы. Вторая будет уже изменять размер и положение опять же ко всем контролам, включая и контролы-контейнеры.
Как альтернативный вариант, можно попробовать обойтись без контролов-контейнеров положив все ваши панели, кнопки и т.д. на форму независимо друг от друга - тогда ваш пример будет правильно работать т.к. контролов-контейнеров не будет.

Спасибо, уже всё решилось
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:59.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025