yarmak

Forum Replies Created

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • in reply to: TForm и DLL #48033
    yarmak
    Participant
    'Support' wrote:

    Не могу понять как такое может быть. А если программа запущена, но ни одной Dll еще не загружено? Тоже Application = nil?

    Так быть не может. DLL линковалась статически, соответстченно до того как загрузится exe, запускается DLL.

    как я себе представляю:

    стартует ДЛЛ, инициализирует TApplication, потом EXE грузится, но т.к. TApplication уже создан, его и пользует.

    При динамической линковке ясно, что сначала стартанет EXE (читай создаст TApplication), а потом подгрузит DLL.

    как-то так.

    in reply to: TForm и DLL #48010
    yarmak
    Participant
    'Torbins' wrote:

    После включения галки “Build with runtime packages”, Application и в dll и в exe будет один и тот же.

    Так то оно так, но он будет у вас от ДЛЛ. Если посмотрите внимательно, то TApplication.Handle = NULL.

    Побочными явлениями будет что на формах показывается стандартная иконка билдера, а не указанная в exe +

    нельзя приложение свернуть в трей из-за того что нет хендла.

    Вы знаете как это побороть?

    in reply to: TForm и DLL #48005
    yarmak
    Participant
    'Torbins' wrote:

    Я думаю демка была бы не лишней.

    И еще, откуда у вас в экзешнике тип TDLLForm? В делфи не возможно было бы его использовать в exe не потянув вместе с ним в экзешник его модуль.

    Я не прав. Если положить TsSkinProvider на форму, то скины работают. Но много проблем с самой длл из-за переопределения TApplication в DLL.

    В итоге пришел к варианту замены DLL на BPL. Скины работают отлично. Спасибо за помощь.

    in reply to: TForm и DLL #47999
    yarmak
    Participant

    Бросил, не помогло. форма осталась такой же.

    Я к сожалению не знаю как работает компоненты TsSkinManager и TsSkinProvider, но у компонента TsSkinProvider есть указатель на TsSkinManager. Он сам его находит или его как-то надо передать этому компоненту?

    Сейчас у компонента TsSkinProvider есть указатель на DataModule->SkinManager, но этот DataModule размещен в EXE, а форма с компонентом TsSkinProvider в DLL.

Viewing 4 posts - 1 through 4 (of 4 total)