![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Darked |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 26.2.2004 Где: Южный Урал Репутация: нет Всего: нет |
Доброе время суток.
Суть вопроса в чём: есть класс для работы со сканером - сканирование, сохранение в различных форматах, переконвертирование...
и, соответственно, класс формы для изменения состояния класса сканирования:
В этой форме я переопределяю конструктор и хочу передать cсылку на класс родителя, так как из формы хочу вызывать методы TScanUtils для установки значения внутренних переменных. В итоге получаю, конечно же, Circular unit reference! Хотелось бы узнать как такую ситуацию разрулить на уровне архитектуры программы, как правильно избежать этой ситуации не на уровне как - нить хаков, а грамотным структурированием... В голову пока только приходит создание третьего файла юнита с определение интерфейса сканера, реализация которого потом будет в scanutils юните. -------------------- Veni, Vidi, Vici !!! |
||||
|
|||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
Это сообщение отредактировал(а) Frees - 3.5.2011, 12:32 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
Darked |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 26.2.2004 Где: Южный Урал Репутация: нет Всего: нет |
Frees, да, я думал о помещении в один файл обоих классов, но, во-первых, оба класса массивные скучей кода и не хотелось бы смешивать, а во-вторых, как - то это не по феншую, который гласит - каждому модулю свой файл, имхо.
-------------------- Veni, Vidi, Vici !!! |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
тогда
Это сообщение отредактировал(а) Frees - 3.5.2011, 14:53 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
Darked |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 26.2.2004 Где: Южный Урал Репутация: нет Всего: нет |
Было бы самое оно, если бы я не переписывал конструктор CreateEx, соотвественно, я потом и форму создаю как
-------------------- Veni, Vidi, Vici !!! |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
если frmUI будет TForm тебе никто не мешает так создавать экземпляр формы. можно даже так
Добавлено через 1 минуту и 3 секунды Можно еще впринципе сменить архитектуру, попробуй GoF почитать. -------------------- Кольцов Виктор Владимирович |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Я не понял, а зачем frmUI: TfrmScanInfo; сделано полем в объекте?
Добавлено через 8 минут и 8 секунд Если совсем "по фен-шую": там вообще не должно быть формы ни в каком виде. Может у меня консольное приложение и настройки я задаю в командной строке? Должен быть интерфейс типа:
Соответственно, форма должна реализовывать этот интерфейс. И в TScanUtils ты работать должен с ним, а не с формой. А за интерфейсом в перспективе может быть и консольный диалог, и чтение настроек из конфигурации, и вообще что угодно. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Darked |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 536 Регистрация: 26.2.2004 Где: Южный Урал Репутация: нет Всего: нет |
Спасибо, так наверное и сделаю. Изначально не правильно спроектировал приложение. -------------------- Veni, Vidi, Vici !!! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |