![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
ivan219 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 2 Всего: 12 |
Есть вопросы:
А интересует меня вот это:
Почему когда я делаю default True;то после регестрации компонента свойство RealChar перестаёт действовать т.е. оно есть но никаких действий не вызывает переменная Cheked так и остаётся False и ещё в инспекторе свойство RealChar отображается как False ![]() А если без него:
То всё работает, Cheked и RealChar в начале находится в False как это исправить ![]() И ещё непонятно зачем нужно сночало записывать в переменную Read Cheked а потом из неё читать Write Cheked; когда мне нужно всеголиш присвоить переменной Cheked значение RealChar Но если делать так:
То свойство в инспекторе вобще непоявляется ![]() ![]() Это сообщение отредактировал(а) ivan219 - 12.2.2007, 02:58 |
||||||||
|
|||||||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 3 Всего: 7 |
А как по-твоему, когда ты в инспекторе его значение меняешь, его записать разве никуда не нужно? Совершенно логичное поведение, Read Only свойству в инспекторе делать нечего. Вот что написано в хелпе: The optional stored, default, and nodefault directives are called storage specifiers. They have no effect on program behavior, but control whether or not to save the values of published properties in form files. The stored directive must be followed by True, False, the name of a Boolean field, or the name of a parameterless method that returns a Boolean value. For example, property Name: TComponentName read FName write SetName stored False; If a property has no stored directive, it is treated as if stored True were specified. The default directive must be followed by a constant of the same type as the property. For example, property Tag: Longint read FTag write FTag default 0; To override an inherited default value without specifying a new one, use the nodefault directive. The default and nodefault directives are supported only for ordinal types and for set types, provided the upper and lower bounds of the set's base type have ordinal values between 0 and 31; if such a property is declared without default or nodefault, it is treated as if nodefault were specified. For reals, pointers, and strings, there is an implicit default value of 0, nil, and '' (the empty string), respectively. Note: You can't use the ordinal value 2147483648 has a default value. This value is used internally to represent nodefault. When saving a component's state, the storage specifiers of the component's published properties are checked. If a property's current value is different from its default value (or if there is no default value) and the stored specifier is True, then the property's value is saved. Otherwise, the property's value is not saved. Note: Property values are not automatically initialized to the default value. That is, the default directive controls only when property values are saved to the form file, but not the initial value of the property on a newly created instance. Storage specifiers are not supported for array properties. The default directive has a different meaning when used in an array property declaration. See Array Properties, above. Так что всю раздачу значений в конструкторе. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
default не назначает свойству значения.
Оно всего лишь говорит, что его не нужно сохранять, если оно true. А назначить его нужно ручками в конструкторе. Чтобы проперть можно было менять в инспекторе, она должна быть сохраняемой и восстанавливаемой. То есть иметь и read и write. Иначе нет смысла его сохранять, если нельзя обратно прочитать. Если не будет read или write, пропертя просто не сможет сериализоваться и не будет прописана в dfm файл. А раз так, то и в инспекторе ей делать нечего ![]() |
|||
|
||||
ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 2 Всего: 12 |
Теперь понятно почему оно у меня не работало мне надо было в True а в True оно не сохраняет ![]() ![]() А я думал что default True; это тоже самое что и Cheked:=True; ![]() Ну теперь всё понятно спасибо ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |