Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Вниз

Свойства self-made компонента - ничего не понимаю!   Найти похожие ветки 

 
olookin ©   (2005-02-22 21:53) [0]

Почему настройки self-made компонента, сделанные в дизайн-тайме, сбрасываются до дефолтных при запуске программы и как поправить эту ситуацию?

Заранее спасибо...


 
olookin ©   (2005-02-22 22:00) [1]

Так, кажется можно обойтись условием

if csDesigning in ComponentState then ...

Однако при запуске программы возникает исключение Invalid property path. Что я делаю не так?


 
olookin ©   (2005-02-22 22:13) [2]

Боже какой я тормоз. Все прекрасно функционирует. Просто в данной программе я настройки компонента при запуске делал из ini-файла.

Вопрос снят.


 
olookin ©   (2005-02-22 22:49) [3]

Новый вопрос.

Есть метод Create у некоторого свойства (т.е. суть объекта, например property Obj: TMyObject ....) базового компонента. В этом методе происходит, например, сначала обнуление некоторого подствойства TMyObject, а затем его назначение (в моем случае это статический массив строк). Есть наследник от этого объекта-свойства, создающийся динамически в сторонней программе, использующей компонент. Но раз он создается динамически, то он снова вызывает метод Create соотв. свойства-объекта базового компонента, и снова обнуляет и назначает статический массив, теряя при этом все то, что сделано в дизайн-тайме над этим самым подсвойством базового комопнента. Как запретить ему это делать?

Вероятно, я не очень доходчиво объяснил. Если так, то поясню. У компонента есть свойство List: TStringList. Содержимое оного можно менять, но при помещении компонента из палитры на форму в List: TStringList заносится содержимое по умолчанию, например строка "default". В дизайн-тайме можно добавить/удалить содержимое строк в List. Но при исполнении программы динамически создается экземпляр-наследник от этого свойства, вызывается его метод Create и содержимое List восстанавливается до default-ного. Чего, разумеется, не хочется, а хочется, чтобы в наследника передался List, сформированный в дизайн-тайме. Как же это сделать?

Отмечу также, что после запуска программы исходное свойство базового компонента заменяется на созданного динамически наследника.

Заранее спасибо.


 
Набережных С. ©   (2005-02-23 08:57) [4]


> olookin ©   (22.02.05 22:49) [3]

Все равно не понятно. Есть объект-контейнер, у него внутренний объет TStringList. Создается внешний объект-наследник от TStringList. Какая связь между внутренним и внешним объектом? Как я понимаю, это разные экземпляры. И что за метод такой Create, который у всех нормальных объектов является конструктором? Т.е. непонятна фраза
>  динамически создается экземпляр-наследник от этого свойства,
> вызывается его метод Create


Мож, лучше код покажешь?

> Отмечу также, что после запуска программы исходное свойство
> базового компонента заменяется на созданного динамически
> наследника.

Может быть, нужно Assign делать, а не экземпляр объекта менять?


 
Чапаев ©   (2005-02-23 11:42) [5]

Думаю, автору следует ознакомиться с методом Loaded().



Страницы: 1 вся ветка

Форум: "Компоненты";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.041 c
2-1129442715
serg128
2005-10-16 10:05
2005.11.13
Как заменить первую маленькую букву на большую?


11-1110981835
Vladimyr
2005-03-16 17:03
2005.11.13
QueryEndSession - как чуток подождать?..


1-1129798274
Dimedrol
2005-10-20 12:51
2005.11.13
Автоматизация и контроль над Internet Explorer


1-1129780400
Kulakov_an
2005-10-20 07:53
2005.11.13
Печать на принтере с разбиением на страницы


2-1129893248
Quattro
2005-10-21 15:14
2005.11.13
Наследник от TStringGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский