Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.29;
Скачать: CL | DM;

Вниз

Корректное отображение формы, вызванной из dll...   Найти похожие ветки 

 
Mazer   (2004-01-16 14:40) [0]

Здравствуйте, уважаемые!
есть dll с формой внутри.
загружаю эту форму из своего приложения примерно такой процедурой:
procedure FrmShow; stdcall;
begin
frm := Tfrm.Create(nil);
frm.ShowModal;
frm.Free;
end;
Проблема в следующем: после переключения на другое приложение и щелчке по заголовку окна в панели - появляется неактивное окно моего "главного" приложения и "не видно" форму, вызванную из dll...
Как с этим бороться?


 
Ega23 ©   (2004-01-16 14:53) [1]

Ха, есть такая штука.
Делай так:

function ExportDB(AppHandle:HWND):Boolean; StdCall;
begin
Result:=uExportDB.ExportDB(AppHandle);
end;

//*************************************************************
exports
ExportDB name "ExportDB";


В юните uExportDB (это где форма):

type
TFExport = class(TForm)

.......

var
FExport: TFExport;

function ExportDB(AppHandle:HWND):Boolean;
implementation

{$R *.dfm}

//*************************************************************
function ExportDB(AppHandle:HWND):Boolean;
begin
Result:=False;
Application.Handle:=AppHandle;
try
try
ExportParams:=TExportParams.Create(Application.ExeName);
Application.CreateForm(TFExport,FExport);
FExport.Mode:=1;
FExport.ShowModal;
except on E:Exception do
begin
Result:=False;
end;
end;
finally
Result:=FExport.ImpExpResult;
FExport.Free;
FExport:=nil;
ExportParams.Free;
ExportParams:=nil;
end;

end;

//************************************************************


Основная фича - Application.Handle


 
Mazer   (2004-01-16 15:42) [2]

а проще никак?
что такое ExportParams, ImpExpResult?


 
alex_*** ©   (2004-01-16 15:48) [3]

Основная фича - Application.Handle


 
Ega23 ©   (2004-01-16 15:48) [4]


> Mazer (16.01.04 15:42) [2]

Это мои функции, переменные юниты и т.п.
Тебе надо Application"у твоей DLLки приравнять Application вызывающего приложения.


 
Amoeba ©   (2004-01-16 16:08) [5]

Читаем http://www.delphikingdom.com/helloworld/md_dll.htm


 
vl_chel ©   (2004-01-17 12:53) [6]

Из библиотеке экспортируем процедуру показа формы, при ее вызове передаем Application.Handle - это из приложения.
Если в проект dll подключен модуль Forms то объект Application для библиотеке создастся автоматически - это другой объект!!! простым присваиванием объекту хендела можно все проблемы решить и создавать окнол привычным спосодом TMyForm.Create(Application)



Страницы: 1 вся ветка

Текущий архив: 2004.01.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
3-93406
NailMan
2004-01-05 09:33
2004.01.29
База для Media Library видеоплеера


14-93684
wWw
2004-01-06 20:27
2004.01.29
Как заставить замолкнуть сообщение WinXP


3-93361
Vi0let
2003-12-30 14:15
2004.01.29
Как прокручивать TGrid колесом мыши?


3-93345
VID
2004-01-02 03:04
2004.01.29
Серьёзный вопрос: отображение текста Exception после Suspend;


3-93363
Vick
2003-12-31 11:44
2004.01.29
Экспорт из DataSet в Excel