Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Default свойства 
:(
    Опции темы
Christoph
Дата 12.2.2009, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: 5
Всего: 11



Имеется такой вопрос,
Код

property Height: Integer read FHeight write FHeight default 25

Я кидаю например кнопку на форму, длина и ширина устанавливается, как? из конструктора?или устанавливается значение свойства Height=25?
Я так понимаю, что если текущее значение свойства Height отличное от 25, то запись идет в файл формы, после этого, при компиляции,свойства объекта обновляются из файла формы? 
И чтот не верится что все published свойства объекта устанавливается через конструктор,спасибо


--------------------
user posted image
PM MAIL ICQ   Вверх
bems
Дата 12.2.2009, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Цитата(Christoph @  12.2.2009,  19:27 Найти цитируемый пост)
Я так понимаю, что если текущее значение свойства Height отличное от 25, то запись идет в файл формы, после этого, при компиляции,свойства объекта обновляются из файла формы? 

примерно так
Цитата(Christoph @  12.2.2009,  19:27 Найти цитируемый пост)
И чтот не верится что все published свойства объекта устанавливается через конструктор,спасибо 
те которые не устанавливаются в конструкторе или не имеют значения по умолчанию, или это 0

Добавлено через 2 минуты и 51 секунду
Цитата(Christoph @  12.2.2009,  19:27 Найти цитируемый пост)
при компиляции,свойства объекта обновляются из файла формы? 
при компиляции вайл формы включается в екзешник в виде ресурса. Во время работы (в процессе создания формы) ее компоненты создаются конструкторами, а потом считываются их свойства из ресурса



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Snowy
Дата 12.2.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Размер устанавливается конструктором.
В данном случае, свойство default говорит дефолтное значение.
Если итоговое значение не будет отличаться, то оно не будет записано в dfm
Само по себе оно ничего не устанавливает. Просто сообщает, что, если не меняем, то и сохранять его не нужно - оно и так будет таким.
Если его изменить в инспекторе объектов, то оно подсветится жирным шрифтом, указывая, что свойство будет сохранено в dfm и помещено в ресурсы.
Не жирные свойства не записываются.
При запуске программы, компонент создаётся, ему назначается дефолтное значение.
Когда все компоненты будут созданы, происходит чтение dmf файла, и устанавливаются все значения, всем компонентам, прописанные в dfm. То есть те, что отличны от default.
PM MAIL   Вверх
Christoph
Дата 12.2.2009, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: 5
Всего: 11



Snowy, это если я кидаю компонент на форму, то у него будет установлено свойство Height 25(в моем примере)? И еще что я хотел спросить например если я меняю размеры кнопки во время проектирования, то соотвествено тут же изменяется, если например свойство Visible поставить False то изменения происходят после компиляции (я так понимаю, что из файла формы загрузилась свойство Visible), почему же одни свойства меняются визуально во время проектирования а другие нет, это как то связано с этом темой? Спасибо 


--------------------
user posted image
PM MAIL ICQ   Вверх
bems
Дата 12.2.2009, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Цитата(Christoph @  12.2.2009,  21:59 Найти цитируемый пост)
если я кидаю компонент на форму, то у него будет установлено свойство Height 25(в моем примере)?
да, будет. Но не из-зи того, что стоит default 25, а из-за того, что конструктор присвоит. А default 25 означает что не надо сохранять 25 (что излишне, из-за поведения конструктора)

Цитата(Christoph @  12.2.2009,  21:59 Найти цитируемый пост)
если например свойство Visible поставить False то изменения происходят после компиляции (я так понимаю, что из файла формы загрузилась свойство Visible),

для Visible все точно так же. Свойство измениться сразу же (но этого не видно). При этом измененное значение пишется в файл, а при выполнении читается и восстанавливается. На глаз изменений не видно только потому что кнопка умеет отличать, работает ли она делфи на редакторе или в запущеном екзешнике. Для случая с редактором в делфи она нормально дает изменить значение свойства, но не прячется визуально, потому что это было бы неудобно для того кто работает над интерфейсом.
конкретнее как это происходит: 
Код

if csDesigning in ComponentState then ...

это проверка на то в дизайнере ли выполняется код. что-то типа такого ветвления есть и в коде кнопки



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Christoph
Дата 12.2.2009, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: 5
Всего: 11



Спасибо за помощь, все разобрал, всем по плюсику  smile  Тему закрываю


--------------------
user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0512 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.