Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.05 c
4-1103204035
pavel_guzhanov
2004-12-16 16:33
2005.02.06
Как убить процесс на удаленном компьютере с помощью WMI?


9-1098833740
Зелёный Буран
2004-10-27 03:35
2005.02.06
Ужасная проблема с изометрией... Помогите :)))


14-1105370530
Василий
2005-01-10 18:22
2005.02.06
Товарищи, а у вас есть сайт?


4-1103456415
ship
2004-12-19 14:40
2005.02.06
ошибки приёма в com порт


1-1106416265
Bobby Digital
2005-01-22 20:51
2005.02.06
StringGird