Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2011, 12:56   #1
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию Вспомогательная форма в DLL. Передача данных.

Здравствуйте. Пишу проект для геодезии. В каждом из приложений есть возможность загрузить базу геодезических пунктов. Для каждой программы нет желания делать окно. Хотел узнать можно ли сделать это окно в DLL?

Из данного окна должна быть возможность открывать файл, выбирать нужные точки и передавать главной программе. Читал, что в DLL нельзя использовать переменные и передавать их в главную форму. Может я что-то не так понял? Как это можно реализовать? Может есть альтернативы?

Заранее спасибо.
Arkuz вне форума Ответить с цитированием
Старый 15.04.2011, 15:30   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

А разница то в чем? Что в основном проекте Вам делать форму, что в DLL?
FaTaL вне форума Ответить с цитированием
Старый 15.04.2011, 15:51   #3
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

просто проект состоит из многих самостоятельных приложений. и тогда форму загрузки делать для всех, или делать одну, но потом подключать везде. геморой получается
Arkuz вне форума Ответить с цитированием
Старый 15.04.2011, 23:09   #4
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Включите во всех приложениях и длл использование рантайм пакетов. Это позволит не только обмениваться всем чем угодно с длл, но и может уменьшить размер дистрибутива вашего проекта.
Правда есть два условия: все приложения и длл должны компилироваться в одной версии делфи; bpl-пакеты придется включить в дистрибутив.
eduard93 вне форума Ответить с цитированием
Старый 15.04.2011, 23:58   #5
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

eduard93 а конкретнее можете рассказать, что нужно сделать!?
Arkuz вне форума Ответить с цитированием
Старый 16.04.2011, 01:28   #6
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Ну допустим у вас в приложении и библиотеке должны использоваться компоненты ААА. Они состоят из нескольких пакетов - ААА1.dpk, ААА2.dpk и ААА3.dpk. В приложении вы используете компоненты из первых двух, а в библиотеке только из первого. Тогда в опциях обоих проектов должна стоять галочка "Build with runtime packages". А внизу должен быть указан ААА1. Теперь вместе с программой вам придется распространять ААА1.bpl и пакеты от которых он зависит, обычно это VCLxx.bpl и RTLxx.bpl.
Если вы не уверены, какие пакеты удалять из списка под галочкой, а какие оставить, то лучше оставляйте все. Ваше приложение все равно будет использовать только то, что ему реально нужно.
Всякие технические подробности неплохо описаны тут: http://softwarer.nm.ru/packages.html
eduard93 вне форума Ответить с цитированием
Старый 16.04.2011, 02:49   #7
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Цитата:
просто проект состоит из многих самостоятельных приложений. и тогда форму загрузки делать для всех, или делать одну, но потом подключать везде. геморой получается
Не надо мудрить...dll - оно конечно хорошо, но там где она действительно необходима...А в вашем случае самый оптимальный вариант - это одна форма в нескольких проектах...по идее проблем не должно возникнуть...
Цитата:
Читал, что в DLL нельзя использовать переменные и передавать их в главную форму.
Используем Memory-mapped file.
Будь проще и люди к тебе потянутся

Последний раз редактировалось spamer; 16.04.2011 в 02:52.
spamer вне форума Ответить с цитированием
Старый 16.04.2011, 13:05   #8
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Спасибо за помощь!
Arkuz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Dll и основная форма (взаимосвязь) fbus Работа с сетью в Delphi 9 16.04.2011 03:27
неперемещаемая форма из dll oldDed Общие вопросы .NET 0 07.11.2010 13:25
из .exe TBitMap передать в DLL(форма) lexaltd Мультимедиа в Delphi 13 14.07.2009 17:47
Передача данных из VC++ DLL в Delphi App Kosoglaz Общие вопросы C/C++ 2 05.02.2008 10:53
Передача данных(массива) через DLL. acorables Общие вопросы Delphi 4 05.02.2007 13:16