Форум: "Основная";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];
ВнизНеобходимость взаимного использования модулей Найти похожие ветки
← →
Juice © (2005-07-19 20:06) [0]Есть 2 модуля, первый - модуль формы (fm_unit), а второй модуль содержит код потока (thread_unit). Причем есть необходимость взаимного использования:
TQueryThread = class(TThread)
public
form : TMyForm;
и
TMyFomr = class( TForm)
public
thread : TMyThread;
Что вынуждает в разделе uses модуля fm_unit прописать thread_unit и наоборот, в uses модуля thread_unit прописать fm_unit. Получается Circular unit reference to ...
???
← →
lexer © (2005-07-19 20:14) [1]1.
unit thread_unit
interface
fm_unit
2.unit thread_unit
implementation
fm_unit
← →
Lexer © (2005-07-19 20:16) [2]Sory, так:
1.unit thread_unit
interface
fm_unit
2.unit fm_unit
implementation
thread_unit
← →
Juice © (2005-07-19 20:20) [3]Ага, а описывать класс TMyForm тоже в разделе implementation ? Так не прокатит.
← →
Anatoly Podgoretsky © (2005-07-19 20:31) [4]Меняй дизайн
← →
Юрий Зотов © (2005-07-20 05:27) [5]> Juice © (19.07.05 20:06)
Как это ни может показаться странным, но совет [4] очень даже верный. Скажем, можно включить поток в юнит формы.
Другой вариант - делать более общие ссылки. Например:
Не form: TMyForm, а form: TForm.
Или не thread: TMyThread, а thread: TThread.
И потом пользуемся приведением типов (там, где потребуется).
Вот два варианта. Выбирать - Вам.
← →
REA (2005-07-20 11:02) [6]1) вынести часть в третий юнит
2) использовать переменные с обычными классами (в т.ч. TForm) - что по сути сводится к (1)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c