Delphi Dll - более одной формы / единицы в одной dll

У меня нет опыта работы с DLL сейчас. Мое приложение состоит из нескольких программ с несколькими формами и единицами. Теперь я хочу собрать их всех "вместе". Это означает, что я хочу иметь один Login, который бы вызывал эти отдельные программы из dll.

Поскольку программы сами имеют несколько модулей, мой вопрос заключается в том, можно ли поместить более одной формы / модуля в одну DLL. (полная программа) Тогда я мог бы назвать Программы как DLL.

До сих пор программы запускались отдельно, между ними нет никаких зависимостей. Внутри них есть каскадные формы (Form1 вызывает Form2 или form3 или...). Если невозможно собрать их все вместе в одну dll, могу ли я каскадировать dll (то есть, вызов dll 1, dll1 вызывает dll 2)?

Я использую Delphi 2007 / XE с Firebird 2.x через IBDac

ТИА

3 ответа

Помните, что экземпляр объекта Application в DLL и в EXE будет отдельным. Вы должны передать Application.Handle в свою DLL из Exe и установить его. В противном случае вы получите отдельную кнопку приложения на панели задач Windows.

Да, вы можете поместить в DLL столько единиц, сколько хотите. Эти единицы могут иметь связанные с ними формы или нет, как и в любом другом проекте Delphi.

Если нет конкретной причины использовать DLL (например, возможность вызывать их из / писать на других языках программирования), вам следует рассмотреть возможность использования пакетов.

Вы можете поместить столько пакетов и форм в пакет, сколько захотите, но помните, что имена блоков должны быть уникальными: вы не можете загрузить несколько пакетов, содержащих один и тот же блок (но вы можете поместить эти блоки в отдельный пакет, который используется несколькими пакетами).

Другие вопросы по тегам