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

Вниз

Как создать events у Frame или у Form?   Найти похожие ветки 

 
georgius ©   (2006-05-24 14:00) [0]

Не понимаю, как это работает
1) Создаю потомок от Frame, у него событие OnCreate
2) Регистрирую, как компонент (register и т.д.)
3) Кидаю на форму - событие видно на закладке Events

Теперь делаю немного по-другому:
Создаю новый Frame, наследую его от первого (File|New|Other....). Создается нормально, смотрю Events - нету OnCreate!!!

Точно так же у любой формы можно объявить published
property и event, а потом создавать ее потомков, и ожидая
увидеть эти новые свойства, разочаровываться.

В связи с этим вопрос:
Есть ли способ добавлять в объекты, создаваемые путем наследования форм (File|New|Other.....) добавлять свои свойства так, чтобы они были доступны в дизайнере?


 
Юрий Зотов ©   (2006-05-24 21:33) [1]

См. RegisterCustomModule.


 
georgius ©   (2006-05-24 22:55) [2]

Посмотрел, попробовал.... Многодельно и практически бесполезно (Я так думаю!).
Зато нашел workaround - все фреймы в иерархии можно зарегистрировать, как компоненты, и тогда, когда их кидаешь на форму - их дополнительные свойства доступны.


 
ZeroDivide ©   (2006-05-28 15:49) [3]

{$IFDEF DT}
 procedure Register;
{$ENDIF}
implementation
{$IFDEF DT}
uses DesignIntf, DesignEditors;
{$ENDIF}

{$R *.dfm}
   
{$IFDEF DT}
procedure Register;
begin
 RegisterCustomModule(TfrmBasic, TCustomModule);
end;
{$ENDIF}

после этого, надо засунуть фрейм в пакет поставить в опциях пакета в Conditionals - DT
Откомпилировать и установить bpl. Потом можно будет в своем проекте наследоваться от этого фрейма.

Events в инспекторе объектов появятся, но в месте с тем появится еще куча проблем:
1. Фреймы, унаследованые от этого фрейма не смогут "кидаться на форму", их можно будет создавать и показывать только в рантайм.
2. В пакете нельзя сделать визуальную иерархию фреймов. dfm не умеют наследоваться в пакетах.



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

Текущий архив: 2007.02.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
15-1169092383
Тензор
2007-01-18 06:53
2007.02.11
Что такое матрица инерции в ODE ?


6-1157832233
Lex Luthor
2006-09-10 00:03
2007.02.11
Загрузка контактов в TICQ Client e


15-1169161784
hmmcensured
2007-01-19 02:09
2007.02.11
вопрос по SEO


2-1169543020
vigo_
2007-01-23 12:03
2007.02.11
Печать по-русски


6-1157706811
bober
2006-09-08 13:13
2007.02.11
сокеты