Re: DX: После вызова окна из DLL - прячется основная форма п
От: StlGroup  
Дата: 11.08.03 19:57
Оценка: 18 (2)
Здорово
Значит так,
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 а не на панели задач..
DX: После вызова окна из DLL - прячется основная форма прило
От: bulkoed  
Дата: 11.08.03 15:32
Оценка:
Приветствую Всех.

Вобщем есть у меня диалог в DLL, когда он отрабатывает и закрываеться — основное окно программы прячеться в TaskBar и нужно кликать на нем чтобы оно восстановилось.
Подскажите пожалуйста, как от этого избавиться?

Заранее премного благодарен!
... << RSDN@Home 1.0 beta 6a >>
С уважением,
Денис.
Re[2]: DX: После вызова окна из DLL - прячется основная форм
От: bulkoed  
Дата: 12.08.03 05:35
Оценка:
Здравствуйте, StlGroup, Вы писали:

SG>Здорово

SG>Значит так,
SG>1) При вызове формы из DLL надо передать указатель на родительское окно..
SG>2) после этого должна появляться прямо в основном окне приложения в которое ты загружаешь DLL а не на панели задач..

Помогло! Премного Вам благодарен!
... << RSDN@Home 1.0 beta 6a >>
С уважением,
Денис.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.