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

2 Гость

Написал компонент (наследник TComponents естест-нно) , там есть свойство Action = {true;false}, которое при создании компонента автоматом вызывается в первую очередь.
Необходимо, что бы вызов был последним, т.е. после инициализации всех свойств данного комп-та.
...
Рейтинг: 0 / 0
Разработка компонент
    #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
Разработка компонент
    #32305804
ZEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEX
Гость
Огромное спасибо !!
А то я тут всю голову сломал. :)
И статей в интернете мало по разработке компонентов.
Классный форум и люди отзывчивые.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Разработка компонент
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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