Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

Свойства 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.049 c
1-1130214751
Denned
2005-10-25 08:32
2005.11.13
Проблема с загрузкой Bitmap ов из .res-файла


1-1130227095
NickKuz
2005-10-25 11:58
2005.11.13
Не запускается Delphi


4-1126229789
Ксардас
2005-09-09 05:36
2005.11.13
Обращение к портам LPT через WinAPI


2-1129569313
Bogdan1024
2005-10-17 21:15
2005.11.13
типо createprocess


2-1129779847
Alex77777
2005-10-20 07:44
2005.11.13
Нужно отфильтровать базу по пустому полю