-
atruhin © (01.08.09 12:47) [0]Есть модуль редактора, в нем описан тип. Пример:
unit AAA
interface
type
TEditData = record ... end
....
end;
Есть модуль компонента
unit BBB;
interface
uses AAA;
type
TOnEditEvent = procedure (MyVar : TEditData) of object;
TMyComponent = class(TComponent)
...
published
property OnMyEdit : TOnEditEvent ...
Проблемма в следующем, когда я кидаю на форму компонент, и создаю обработчик OnMyEdit,
в uses прописывается только модуль компонента BBB. Т.к. тип TEditData описан в AAA
получаем ошибку компиляции.
Можно ли заставить delphi при использавании компонента автоматически включать в uses и AAA и BBB? -
DimaBr © (03.08.09 09:20) [1]Можно, для этого переместите ваш компонент в нужный модуль, или же сделайте родителя в нужном модуле.
Первый модуль
unit AAA
interface
type
TMyComponent = class(TComponent);
type
TEditData = record ... end
....
end;
Второй модуль
unit BBB;
interface
uses AAA;
type
TOnEditEvent = procedure (MyVar : TEditData) of object;
TMySuperComponent = class(TMyComponent) -
icWasya © (03.08.09 14:58) [2]В uses прописываются только те юниты, в которых есть процедура Register, и только для тех компонент, которые в ней перечислены.
а вместо [1] можно сделать так
unit AAA
interface
type
TEditData = record ... end
....
end;
Второй модульunit BBB;
interface
uses AAA;
type
TEditData = AAA.TEditData;//<<<===-----
type
TOnEditEvent = procedure (MyVar : TEditData) of object;
-
DimaBr © (03.08.09 15:38) [3]> В uses прописываются только те юниты, в которых есть процедура Register
Полная ерунда -
atruhin © (03.08.09 17:15) [4]Спасибо. Идеи понятны. Буду пробовать.