![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Необходимость взаимного использования модулей
Juice © (2005-07-19 20:06:00)Есть 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 ...
???
REA (2005-07-20 11:02:00) [1]1) вынести часть в третий юнит
2) использовать переменные с обычными классами (в т.ч. TForm) - что по сути сводится к (1)
Юрий Зотов (2005-07-20 05:27:00) [2]> Juice © (19.07.05 20:06)
Как это ни может показаться странным, но совет [4] очень даже верный. Скажем, можно включить поток в юнит формы.
Другой вариант - делать более общие ссылки. Например:
Не form: TMyForm, а form: TForm.
Или не thread: TMyThread, а thread: TThread.
И потом пользуемся приведением типов (там, где потребуется).
Вот два варианта. Выбирать - Вам.
Anatoly Podgoretsky (2005-07-19 20:31:00) [3]Меняй дизайн
Juice (2005-07-19 20:20:00) [4]Ага, а описывать класс TMyForm тоже в разделе implementation ? Так не прокатит.
Lexer (2005-07-19 20:16:00) [5]Sory, так:
1.
unit thread_unit
interface
fm_unit
2.
unit fm_unit
implementation
thread_unit
lexer (2005-07-19 20:14:00) [6]1.
unit thread_unit
interface
fm_unit
2.
unit thread_unit
implementation
fm_unit