Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Разработка компонент / 8 сообщений из 8, страница 1 из 1
22.10.2003, 12:06
    #32301181
ZEX
ZEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка компонент
Люди, подскажите кто сталкивался.
Как указать RTTI приоритеты инициализации свойств своего компонента.
...
Рейтинг: 0 / 0
22.10.2003, 12:33
    #32301255
olga1999
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка компонент
Инициализация происходит согласно объявлению published свойств. Может лучше изменить порядок объявления published свойств.
...
Рейтинг: 0 / 0
23.10.2003, 14:23
    #32303032
ZEX
ZEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка компонент
Это точно ?
Я пробовал что-то не помогает. Еще пробовал изменять порядок в *.dfm файлах, без результатно.
...
Рейтинг: 0 / 0
23.10.2003, 16:05
    #32303289
olga1999
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка компонент
Да, только начиная с published свойств самого верхнего предка. Например
у TForm есть published свойсто Left. Оно объявлено первым published свойством у TControl, поэтому у любого наследника TControl оно в dfm будет сохраняться первым(у TComponent тоже есть published свойства Tag и Name.
У Name стоит stored false, а Tag сохраняется, если он отличен от 0. Если его изменишь, то он будет первым сохран-ным свойством, а Left - вторым)
Top - его второе свойство, то же самое и т.д.
...
Рейтинг: 0 / 0
23.10.2003, 17:09
    #32303456
_Гость_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка компонент
... а какова цель. Может для ее решения есть другой путь
...
Рейтинг: 0 / 0
24.10.2003, 12:08
    #32304117
ZEX
ZEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка компонент
Большое спасибо. Направление понял. Буду экспериментировать.

2 Гость

Написал компонент (наследник TComponents естест-нно) , там есть свойство Action = {true;false}, которое при создании компонента автоматом вызывается в первую очередь.
Необходимо, что бы вызов был последним, т.е. после инициализации всех свойств данного комп-та.
...
Рейтинг: 0 / 0
24.10.2003, 15:14
    #32304472
alr
alr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка компонент
2ZEX

Завязываться на порядок инициализации свойств не есть гуд. Если необходимо выполнить какие-либо действия после инициализации свойств, перекройте метод TComponent.Loaded и реализуйте отложенную установку значения свойства. Например так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
type
  TMyCoolComponent = class(TComponent)
  private
    FAction: boolean;
    FTempAction: boolean;
    procedure SetAction(const Value: boolean);
  protected
    procedure Loaded; override;
  published
    property Action: boolean read FAction write SetAction;
  end;

implementation

{ TMyCoolComponent }

procedure TMyCoolComponent.Loaded;
begin
  inherited;
  Action := FTempAction;
end;

procedure TMyCoolComponent.SetAction(const Value: boolean);
begin
  if csReading in ComponentState then
    FTempAction := Value
  else
   ;// обработка установки значения свойства
end;
...
Рейтинг: 0 / 0
27.10.2003, 11:15
    #32305804
ZEX
ZEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка компонент
Огромное спасибо !!
А то я тут всю голову сломал. :)
И статей в интернете мало по разработке компонентов.
Классный форум и люди отзывчивые.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Разработка компонент / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]