Вниз
Скачать: CL | DM;

Взаимосвязь модулей приложения.   Найти похожие ветки 

 
Zak3D[@Tm] ©   (2005-07-14 17:28) [0]

Наверно всем известна ситуация, когда в два модуля приложения ссылаются друг на друга(это простой случай), либо когда два модуля ссылаются друг на друга неявно(здесь отследить перекрытие сложнее).
Делфи ругается на такое перекрытие вот такими словами -
[Fatal Error] Unit.pas(5): Circular unit reference to "Unit"
Так вот, я знаю что в С++ такая ситуация не возникает и там можно в одном модуле описать все остальные и потом только ссылаться на этот модуль.
Рельно ли реализовать такое в Делфи? Есть ли какая-либо альтернатива такому объявлению?.
Как бороться с такими ситуациями? (следить не предлагать, только таким методом и пользуюсь =))
Заранее благодярен.


 
begin...end ©   (2005-07-14 17:32) [1]

Для устранения ошибки можно разделить объявления -- например, в первом модуле вписать второй модуль в список uses раздела interface, а во втором модуле ссылку на первый поместить в implementation. Но всё же лучше вынести общие части в отдельный модуль, на который и ссылаться в тех модулях, где это необходимо.


 
ANB ©   (2005-07-14 17:51) [2]

Если нет особой необходимости, лучше всегда подключать модули в разделе implementation. И вовремя выносить общие части по объявлению типов в отдельный модуль. Кстати, зацикливание инклудов в си иногда приводит к еще более печальным последствиям.


 
Vadik   (2005-07-15 10:04) [3]

Zak3D[@Tm], а как ты отслеживаешь перекрытие? Я вот столкнулс с такой задачей и решил найти средство для поиска таких проблем. Если не найду, то придеся писать самому. Может что посоветуешь? в Model Makere есть такая возможность? Или где еще?


 
Zak3D[@Tm] ©   (2005-07-15 12:08) [4]

Vadik
Ну в ошибке ведь есть ссылка на модуль виновный в перекрытии, и первым делом я смотрю туда =).
Т.к. компилирую приложение я часто, то мне не особо сложно отследить перекрытие, да и ведь я знаю структуру своей программы и поэтому при возникновении перекрытия сразу появляются какие-то мысли/догадки - где это могло произойти.
А способа с этим бороться как видишь из этой ветки я не нашёл =(.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
1-1121692343
Shuma
2005-07-18 17:12
2005.08.07
Плоский (Flat) PageControl и/или TabControl


1-1121928117
Funt_IK
2005-07-21 10:41
2005.08.07
Delphi 2005


1-1121409859
dip
2005-07-15 10:44
2005.08.07
Как узнать размеры окна TPopupMenu?


1-1121701815
Destroyer
2005-07-18 19:50
2005.08.07
Как удалить секцию в ini файле?


1-1121884311
UK-AAV
2005-07-20 22:31
2005.08.07
Количество строк




   Наверх