N
nikolasiii
Доброго всем времени суток.
Использую модульную архитектуру при разработке приложений.
В модулях (dll) храню формы. dll подключаю динамически.
Приложения у меня MDI.
Модули я делаю чтобы exe-шник не раздувался и чтобы использовать одни и те же модули разными приложениями.
С модальными формами я разобрался, всё работает на "Ура!", а с формами MDI проблема.
Не очень хорошо представляю себе как можно работать с TApplication и TForm используя dll.
Прошу вас помочь мне. В инете мало чего есть по использованию MDI. Может для этого есть другие решения? Не знаю. Я решил сделать так. Хотя есть у меня один вариант, но после вызова формы не работает кнопка Tab на клавиатуре. Даже код могу показать код:
//вызывается после выгрузки dll
procedure MyDLLProc(Reason: Integer);
begin
if Reason = DLL_PROCESS_DETACH then
if assigned(App) then Application:=App;
end;
procedure FormCreate(var aApp:TApplication;aComp:TComponent);
begin
if not assigned(FrmAutorization) then
begin
DllProc:=@MyDLLProc;
if not assigned(App) then
begin App:=Application;Application:=aApp;end;
FrmAutorization:=TFrmAutorization.Create(aComp);
end;
end;
Заранее благодарен.
Использую модульную архитектуру при разработке приложений.
В модулях (dll) храню формы. dll подключаю динамически.
Приложения у меня MDI.
Модули я делаю чтобы exe-шник не раздувался и чтобы использовать одни и те же модули разными приложениями.
С модальными формами я разобрался, всё работает на "Ура!", а с формами MDI проблема.
Не очень хорошо представляю себе как можно работать с TApplication и TForm используя dll.
Прошу вас помочь мне. В инете мало чего есть по использованию MDI. Может для этого есть другие решения? Не знаю. Я решил сделать так. Хотя есть у меня один вариант, но после вызова формы не работает кнопка Tab на клавиатуре. Даже код могу показать код:
//вызывается после выгрузки dll
procedure MyDLLProc(Reason: Integer);
begin
if Reason = DLL_PROCESS_DETACH then
if assigned(App) then Application:=App;
end;
procedure FormCreate(var aApp:TApplication;aComp:TComponent);
begin
if not assigned(FrmAutorization) then
begin
DllProc:=@MyDLLProc;
if not assigned(App) then
begin App:=Application;Application:=aApp;end;
FrmAutorization:=TFrmAutorization.Create(aComp);
end;
end;
Заранее благодарен.