Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2015, 23:21   #1
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию Фреймы в Delphi XE6

Приветствую всех! Я вот только недавно стал работать с Фреймами, поэтому есть вопросы.
Подскажите пожалуйста, как быть в данной ситуации?
Есть приложение, в нем главная форма, а так же есть фреймы с разными компонентами. На главной форме есть TPanel на которой я размещаю фреймы. После того как фрейм создан и на нем лежат уже нужные компоненты, добавляю его в панель главной формы. Но при изменении, к примеру, размеров какого-либо компонента или его свойств именно а фрейме, то на главной форме этого не отображается. К примеру, я изменил высоту GroupBox'a, а на главной форме высота осталась прежней, и пока я не изменил на главной форме эту высоту, ничего не помогало.
Вопрос следующий, как быть в такой ситуации, как сделать так, чтобы изменения, сделанные в фрейме были видны и в самой форме, а то приходится менять и на самом фрейме и на главной форме?
Кстати, на фрейме есть дбгрид, так мне вообще не удалось на нем нарисовать иконку в столбце. Т.е. в коде фрейма этого не удалось сделать, смог только в коде формы.
В общем как-то очень не удобно получается работать с этими фреймами.
Заранее премного благодарен.
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 30.09.2015, 00:31   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,869
По умолчанию

Цитата:
Сообщение от Vit@L Посмотреть сообщение
Но при изменении, к примеру, размеров какого-либо компонента или его свойств именно а фрейме
Код покажи.
northener вне форума Ответить с цитированием
Старый 30.09.2015, 00:53   #3
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Цитата:
Сообщение от Vit@L Посмотреть сообщение
К примеру, я изменил высоту GroupBox'a, а на главной форме высота осталась прежней, и пока я не изменил на главной форме эту высоту, ничего не помогало.
Тут работает визуальное наследование, при котором для всех inherited-объектов в DFM записываются измененные свойства. Скажем, если размер фрейма на форме отличается от размера при дизайне, измененные размеры будут записаны в DFM формы, перекрывая значения из DFM самого фрейма. Это можно видеть, если открыть DFM по Alt+F12.

В целом есть два пути:
  • Создавать фреймы таким образом, чтобы изменение размеров зависело от выравнивания, типа Align = alClient, а неизменные размеры оставались неизменными, что отследить по DFM (удалить паразитные перекрытия вручную).
  • Если это невозможно и время от времени приходится менять дизайн фрейма, класть фреймы на форму придется только во время выполнения.
Vapaamies вне форума Ответить с цитированием
Старый 30.09.2015, 06:15   #4
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
[*]Если это невозможно и время от времени приходится менять дизайн фрейма, класть фреймы на форму придется только во время выполнения.[/LIST]
Спасибо за помощь, вот мне как раз второй вариант только и подходит, так как бывает что нужно менять что-либо на фрейме.
А вот во время выполнения класть на форму фрейм, можно по подробнее? Как это сделать?
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 30.09.2015, 11:50   #5
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Так же, как и любой другой визуальный компонент:
Код:
begin
  with TMyFrame.Create(Form1) do
    Parent := Form1;
end;
Vapaamies вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi XE6 приложение под Android Vit@L Общие вопросы Delphi 13 22.04.2015 17:14
Delphi XE6 АНЯ_17 БД в Delphi 3 09.10.2014 11:24
Чтение BD accdb Delphi xe6 Alexandr17 БД в Delphi 9 05.09.2014 21:59
Delphi XE6 не компилируется пустой проект Vetriti Общие вопросы Delphi 7 27.06.2014 17:50
TChartSeries в delphi XE6 Fantazerishka Помощь студентам 2 09.06.2014 17:26