Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вызов формы из проекта в DLL [D6, WinXP]


PIF ©   (2005-09-03 20:49:00) 

Здравствуйте! Столкнулся с такой проблеммой:  В DLL существует форма, при нажании на кнопке данной формы должна вызываться форма из основного проекта программы. как мне это можно реализовать.
Заранее благодарен!!!


Tonich   (2005-09-04 12:16:00) [1]


> Defunct ©   (04.09.05 05:17) [5]

 
> нездоровое желаение.
а по моему очень даже здоровое


Sergey_Masloff   (2005-09-04 09:08:00) [2]

Defunct ©   (04.09.05 05:17) [5]
>А ты вдруг хочешь подвязать DLL к одному
Почему нет? Может это плагины за счет которых набирается функционал который для разных юзеров разный? Вполне обычная практика.


Defunct   (2005-09-04 05:17:00) [3]

> PIF
>  В DLL существует форма, при нажании на кнопке данной формы должна вызываться форма из основного проекта программы

нездоровое желаение.
Почему?
очень просто. DLL - ресурс, который могут использовать несколько приложений. А ты вдруг хочешь подвязать DLL к одному конкретному приложению. Зачем? Может просто DLL не нужна?


Гаврила   (2005-09-04 01:46:00) [4]

Нафиг сообщения - передавай адрес возхврата, callback ,и вызывай по тому адресу при нажатии кнопки


Tonich   (2005-09-03 22:00:00) [5]

вот ))


library Form;
// раздел uses и определение класса Form1

procedure CreateMyForm(AppHandle: THandle);
begin
 Application.Handle := AppHandle;
 Form1 := TForm1.Create(Application);
 Form1.Show
end;

procedure DestroyMyForm;
begin
 Form1.Free;
end;

exports
 CreateMyForm,
 DestroyMyForm;
end.



можно так


Tonich   (2005-09-03 21:51:00) [6]


> Carrot   (03.09.05 21:20) [1]

ндааааааа конечно )))

это уже неоднократно обсуждалось на этом форуме, поищи ж


Carrot   (2005-09-03 21:20:00) [7]

Через SendMessage(Handle, WM_USER + 1, 0, 0) - это код в длл.
А в главной программе обрабатывай это сообщение и все.
procedure MyMessage(var msg: TMessgae); message WM_USER + 1;


Наверх

Титульная страница Поиск, карта сайта Написать письмо