Здорово

Значит так,
1) При вызове формы из DLL надо передать указатель на родительское окно..
Пример:
EXE
ShowDllForm(HApp : THandle; HOwner : THandle) ; stdcall ;
DLL
где то там в Dll объявлена форма
TDllForm = class(TForm)
........
var
SaveAppHandle : THandle ;
DllForm : TDllForm ; // <- Объект форма (или перменная)
procedure ShowDllForm(HApp : THandle; HOwner : THandle) ; stdcall ;
begin
// Сохранить указатель на Application
SaveAppHandle := Application.Handle ;
// Назначить новый указатель для Application
Application.Handle := HApp ;
try
DllForm := TDllForm.Create(Application) ;
// или
DllForm := TDllForm.CreateParent(HOwner) ;
try
with DllForm do
begin
ParentWindow := HOwner ;
// Назначаем владельца
ShowModal ; // Выводим окно
end ;
finally
DllForm.Free; // Особождем память
Application.Handle := SaveAppHandle ;
// Востанавливаем указатель
end ;
except
// обработчик ошибок
on E:Exception do
MessageBox(HOwner,'Ошибка','Ошибка',MB_OK) ;
end ;
end ;
2) после этого должна появляться прямо в основном окне приложения в которое ты загружаешь DLL а не на панели задач..
Приветствую Всех.
Вобщем есть у меня диалог в DLL, когда он отрабатывает и закрываеться — основное окно программы прячеться в TaskBar и нужно кликать на нем чтобы оно восстановилось.

Подскажите пожалуйста, как от этого избавиться?
Заранее премного благодарен!
... << RSDN@Home 1.0 beta 6a >>
Здравствуйте, StlGroup, Вы писали:
SG>Здорово
SG>Значит так,
SG>1) При вызове формы из DLL надо передать указатель на родительское окно..
SG>2) после этого должна появляться прямо в основном окне приложения в которое ты загружаешь DLL а не на панели задач..
Помогло! Премного Вам благодарен!

... << RSDN@Home 1.0 beta 6a >>