Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Компонент в dcu...


lookin ©   (2005-09-14 18:17:00) 

Компонент в dcu, подключен к другому компоненту и заявлен там как свойство. Почему редакция свойств этого компонента (который в dcu) легко осуществляется в дизайн-тайме, но сбрасывается в рантайме до дефолтных?


lookin   (2005-09-17 13:53:00) [1]

Премного благодарен, все стало ясно...


Юрий Зотов   (2005-09-16 20:14:00) [2]

Неточность - конструктор, конечно же, в public, не в published.


Юрий Зотов   (2005-09-16 20:10:00) [3]

type
 TYzComponentContainer = class(TComponent)
 private
   FInternalComponent: TComponent;
   procedure SetInternalComponent(const Value: TComponent);
 published
   constructor Create(AOwner: TComponent); override;
   property InternalComponent: TComponent read FInternalComponent write SetInternalComponent;
 end;

constructor TYzComponentContainer.Create(AOwner: TComponent);
begin
 inherited;
 FInternalComponent := TComponent.Create(Self);
  FInternalComponent.SetSubComponent(True)
end;

procedure TYzComponentContainer.SetInternalComponent(const Value: TComponent);
begin
 FInternalComponent. Assign (Value)
end;


lookin   (2005-09-16 18:22:00) [4]

>>Тогда для начала - объявление класса

Ну если это что то скажет...

type TEqapMacro = class(TComponent)
    private
      FMacroSyntax: TAdvPascalMemoStyler;
      procedure SetMacroSyntax(MacroSyntax: TAdvPascalMemoStyler);
 published
      property MacroSyntax: TAdvPascalMemoStyler read FMacroSyntax write SetMacroSyntax;
 end;

...

constructor TEqapMacro.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 FMacroSyntax:=TAdvPascalMemoStyler.Create(self);
end;

procedure TEqapMacro.SetMacroSyntax(MacroSyntax: TAdvPascalMemoStyler);
begin
 FMacroSyntax:=MacroSyntax;
end;


Юрий Зотов   (2005-09-15 05:39:00) [5]

Тогда для начала - объявление класса. Там посмотрим, что потребуется еще.


lookin   (2005-09-15 04:12:00) [6]

[5] Юрий Зотов ©   (15.09.05 04:05)

Весь не позволяет... Форум...


Юрий Зотов   (2005-09-15 04:05:00) [7]

Можно 17-ю. Ошибка обычно в ней.
Но лучше - весь.


lookin   (2005-09-15 03:35:00) [8]

[3] Юрий Зотов ©   (15.09.05 03:27)

Еще б кто подсказхал, какую строчку привести...


Юрий Зотов   (2005-09-15 03:27:00) [9]

> lookin ©   (14.09.05 21:49) [2]

Хороший вопрос. Но как на него ответить, не видя ни строчки кода?


lookin   (2005-09-14 21:49:00) [10]

[1] Юрий Зотов ©   (14.09.05 21:23)

А как это поправить?


Юрий Зотов   (2005-09-14 21:23:00) [11]

Похоже на ошибку в коде (что-то не так с сохраненим в DFM).


Наверх

Титульная страница Поиск, карта сайта Написать письмо