![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
добавление модулей
DimaBr © (2006-09-08 08:48:00)Здравствуйте !
Имеется компонент, тип события которого описан в другом модуле. После создании обработчика события в дизайнере и компиляции ругается мол неизвестный тип, что и правильно поскольку нужно подключить недостающий модуль.
Как автоматически добавлять нужные модули ?
DimaBr (2006-09-11 09:24:00) [1]
> DrPass © (09.09.06 17:16) [4]
Так пробывал, действительно работает, только смешно получается делать промежуточный класс (пустой) для того чтобы зацепить модуль
DrPass (2006-09-09 17:16:00) [2]Ругается. Это факт. Чтобы не ругалось, нужно либо описать TMyComponent в том же модуле, что и TMyEvent, либо ввести какой-нибудь промежуточный класс в A1:
unit A1
interfase
type
TMyParam = class;
TMyEvent = procedure (AParam: TMyParam) of object;
type
TCustomMyComponent = class(TComponent)
end;
unit A2;
uses A1;
type
TMyComponent = class(TCustomMyComponent)
private
fMyEvent: TMyEvent;
published
property MyEvent: TMyEvent read fMyEvent write fMyEvent;
end;
GrayFace (2006-09-09 12:34:00) [3]Такое впечатление, что добавляются модули, содержащие компоненты, используемые твоим. Я для каждого типа из другого модуля делаю так:
TRSProcedure = RSCommon.TRSProcedure;. Для enum'ов приходится еще и каждое значение так перебрасывать вconst.
DimaBr (2006-09-08 11:49:00) [4]Это я знаю, не об этом речь. В проэкте с закинутым компонентом и созданным событием приходится вручную прописывать в USES имя модуля, где описан класс параметра в методе события.
unit A1
interfase
type
TMyParam = class;
TMyEvent = procedure (AParam: TMyParam) of object;
.....
unit A2;
uses A1;
type
TMyComponent = class(TComponent)
private
fMyEvent: TMyEvent;
published
property MyEvent: TMyEvent read fMyEvent write fMyEvent;
end;
при закидке такого компонента на форму и создании обработчика события MyEvent, и компиляции - компилятор ругается что неизвестный тип TMyEvent. Приходится вручную добавлять в USES модуль A1, так как этот тип описан там.
Наиль (2006-09-08 10:54:00) [5]При компиляции dpk иногда появляется предупреждение, что ты забыл указать "другой модуль". Если проигнорировать это предупреждение, то не редко возникает описаная тобой ситуация.
[Warning] Unit 'другой модуль' implicitly imported into package 'твой dpk'