2 пакета времени выполнения: как я могу использовать устройство друг от друга? (Delphi) - PullRequest
0 голосов
/ 08 июня 2010

Предположим, у нас есть 2 пакета времени выполнения, по 1 форме в каждом;

Pkg1 -> Unit1 (frm1)
Pkg2 -> Unit2 (frm2)

Теперь я хочу, чтобы они "знали" друг друга. Когда pkg1 нужно знать Unit2, мы должны «требовать» Pkg2 в Pkg1. Так что теперь я могу выполнить «использование» Unit2, а затем выполнить frm2.Show в коде Unit1.

Но когда я делаю то же самое в Pkg2 (для него требуется Pkg1), он не компилируется, сообщая, что Pgk2 уже имеет имя юнита Unit2 (я думаю, потому что Pkg1 требует Pkg2).

Итак, как: в Unit1 сделать «использует Unit2», а в Unit2 сделать «использует Unit1»?

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 08 июня 2010

Я бы сначала посмотрел на вашу логику.За прошедшие годы я осознал, что почти во всех случаях такая ситуация является плохим кодом, как правило, случаем вещей, которые должны быть выделены в отдельный класс или абстрактный родительский элемент.С другой стороны, посмотрите на шаблон команды - должны ли они посылать друг другу команды, а не связываться друг с другом?

2 голосов
/ 08 июня 2010

Либо создайте третий пакет, который содержит все общее для двух других, либо вам нужно сделать один из модулей доступным, не используя пакеты, такие как добавление их в путь к библиотеке Delphi.

1 голос
/ 08 июня 2010

Вот аналогичный вопрос: Определение типов из других единиц в Delphi . Проверьте ответы там.

...