|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.12.2008, 19:32 | #1 |
Форумчанин
Регистрация: 01.02.2007
Сообщений: 785
|
взаимодействие приложения и dll
У меня в главном приложении - есть DBGrid, в котором отображаются данные из бд baza.mdb. На главной форме есть кнопка Вызов - которая отображает форму из dll.
Также на главной форме есть еще кнопки 2: удалить и добавить. Они добавляют или удаляют записи в бд. В форме из dll - есть тоже DBGrid и две кнопки удалить и добавить. Так вот вопрос: как сделать так чтобы в обоих этих DBGrid одновременно отображалась информация? Т.е. - я открыл форму из dll и удалил в ней запись - тогда информация также мгновенно должна обновиться в DBGrid на главной форме. И наоборот - я открыл форму в dll и удаляю запись через главную форму - тут же должна обновится информация и в открытой форме dll в DBGrid... Прикрепляю сделанные проекты. Mainn.dpr - проект главного приложения libr.dpr - проект dll Unit1.pas- модуль формы dll Примечание: ADOConnection.Caonnected и ADOTale1.Active в проекте в инспекторе объектов поставлены в значение false. Они активизируются при событии form1.Activate. Примеры снабжены комментариями почти к каждой процедуре
Изо всей благодати
В руках крепко сжатых Я донесу только капли Последний раз редактировалось Roof; 07.12.2008 в 19:37. |
07.12.2008, 23:01 | #2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
1. известить главную форму (DLL) о том что произошли изменения
postmessage(wm_user+x,) 2. следить не было ли изменений. ontimer
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 07.12.2008 в 23:03. |
12.12.2008, 23:16 | #3 |
Форумчанин
Регистрация: 01.02.2007
Сообщений: 785
|
Вобщем сообщениями я не очень хочу тут работать.
У меня есть пример - передача одной переменной из dll в главное приложение. В примере можно вызвать форму из dll и в dll нажать кнопку Button3 - тогда И В DLL И В ГЛАВНОМ ПРИЛОЖЕНИИ ИЗМЕНИТСЯ ОДНА ПЕРЕМЕННАЯ ОДНОВРЕМЕННО. Это отображается на обеих формах. Так вот не могу додуматься - как мне передать не одну переменную, а еще и обновления в DBGrid?? Предполагаю, что нужно передавать ADOTable1.Close и ADOTable1.Open. Прошу рассмотреть пример и, если можно, объяснить как передать вместе с одной переменной еще и обновления DBGrid. Mainn.dpr - проект главного приложения libr.dpr - проект dll Unit1.pas- модуль формы dll
Изо всей благодати
В руках крепко сжатых Я донесу только капли |
13.12.2008, 07:05 | #4 |
Старожил
Регистрация: 29.01.2008
Сообщений: 2,406
|
Передай в dll указатели на процедуры. Сделай так:
Объяви процедуру после к.с. implementation Код:
Потом, когда нажимаешь на кнопку "Вызов", такой код: ShowForm(Application.Handle, Self.Handle, @dbOpen); Там выше и в DLL исправь описание этой процедуры. В DLL в объяви глобальную переменную Код:
procedure ShowForm(Appl, Form: THandle; procP: pointer); по мере надобности просто будешь вызывать из dll ShowForm с нужным тебе параметром. p.s. Про stdCall не забудь. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Взаимодействие DLL и программы | Никки | Общие вопросы Delphi | 11 | 07.08.2008 21:22 |
Взаимодействие flash и C#? | mrakaziabra | Общие вопросы .NET | 3 | 16.07.2008 07:16 |
взаимодействие с QIP | Toxa | Общие вопросы Delphi | 5 | 20.06.2008 19:39 |
Делаю сайты, пишу маленькие/большие скрипты. Пишу веб-приложения и приложения под Windows. | SkyM@n | Фриланс | 3 | 29.12.2007 16:21 |
Запуск приложения из DLL | Hollander | Общие вопросы Delphi | 2 | 17.05.2007 20:04 |