Текущий архив: 2005.02.06;
Скачать: CL | DM;
Вниз
circular unit reference Найти похожие ветки
← →
Wolffgang (2005-01-24 16:08) [0]Уважаемые мастера.
Есть 2 модуля.
Первый:
unit op_func;
interface
uses unit85;
procedure reload_base;
implementation
procedure reload_base;
begin
dm.kat.close;
dm.kat.open;
...
end;
end.
dm - query в unit85.
в самом unit85 вызываю процедуру reload_base, для этого в uses указываю op_func. Получаю circular unit reference.
Но если убрать из uses любого модуля другой - либо 85-ый не видит процедуру, либо op_func не видит query в 85-ом.
Как?
← →
Юрий Зотов © (2005-01-24 16:10) [1]Любой из uses"ов перенесите из interface в implementation.
← →
Wolffgang (2005-01-24 16:17) [2]спасибо
← →
Ega23 © (2005-01-24 16:26) [3]2 Юрий Зотов © (24.01.05 16:10) [1]
Вы пишете Любой из uses"ов ... А есть ли какая-нибудь разница, тот перенести, или другой?
← →
Юрий Зотов © (2005-01-24 17:01) [4]> Ega23 © (24.01.05 16:26) [3]
Может быть, а может и не быть.
Пример 1 - разница есть.
unit U1;
interface;
type
T1 = class
constructor Create;
end;
implementation
uses
U2; // Перенести в interface нельзя, будет перекрестная ссылка
constructor T1.Create;
with T2.Create do
try
...
finally
Free
end
end;
end.
unit U2;
interface;
uses
U1; // Перенести в implementation нельзя, будет неизвестен T1.
type
T2 = class
FT1: T1;
end;
implementation
end.
Пример 2 - разницы нет.
unit U1;
interface;
type
T1 = class
constructor Create;
end;
implementation
uses
U2; // Можно перенести в interface
constructor T1.Create;
with T2.Create do
try
...
finally
Free
end
end;
end.
unit U2;
interface;
type
T2 = class
constructor Create;
end;
implementation
uses
U1; // Можно перенести в interface
constructor T2.Create;
with T1.Create do
try
...
finally
Free
end
end;
end.
Страницы: 1 вся ветка
Текущий архив: 2005.02.06;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.028 c