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

Вниз

Вопрос по DLL   Найти похожие ветки 

 
Pegas ©   (2002-10-22 14:26) [0]

Мастера, мне очень нужно вызвать форму из DLL, и чтобы она отабражалась как MDIChild?
Помогите примером!


 
Skier ©   (2002-10-22 14:29) [1]

>Pegas
А в чём косяк-то ?
Подробнее...


 
Игорь Шевченко ©   (2002-10-22 14:30) [2]

www.delphikingdom.com


 
Pegas ©   (2002-10-22 14:41) [3]

Когда я начинаю вызывать из главного приложения форму из ДЛЛ, то мне выдается ошибка, что ни одна форма в данный момент не активна, как правильно вызывать дочернее окно из ДЛЛ?


 
Skier ©   (2002-10-22 14:45) [4]

>Pegas
Странные желания...
Но в любом случае сначала
нужно создать главную форму
MDI-приложения.
Через Application.CreateForm(...)


 
Pegas ©   (2002-10-22 14:47) [5]

Нет, лавная форма создается нормально, затем я динамически загружаю ДЛЛ, а уже потом пытаюсь вызвать это окно и происходит вот такая ошибка!


 
Игорь Шевченко ©   (2002-10-22 15:12) [6]

Pegas © (22.10.02 14:47)

Открою страшную тайну: у DLL есть свой объект TApplication, у него есть свойство MainForm. Для того, чтобы создавались MDIChild формы, надо чтобы эта MainForm была со стилем fsMDIForm.

А у тебя это условие не выполняется.


 
Alx2 ©   (2002-10-22 15:37) [7]

Когда-то давно это обсуждалось. Вот что выросло:

Вот, что сидит в DLL:

Function createMDIChild(App: TApplication; Scr: TScreen): TForm; Stdcall;
Begin
If SaveApp = Nil
Then SaveApp := Application; // Запоминаем старую APP
If SaveScr = Nil
Then SaveScr := SCREEN; // Запоминаем старую Screen
Application := App;// Важно
Screen := Scr;// тоже Важно

Result := TMDIform1.Create(App);// Неважно - просто custom форма
End;

Вот чти сиддит в хосте:

procedure TForm1.NewMDI1Click(Sender: TObject);
Var
MyFunc : TMyFunc;
begin
hLib := LoadLibrary("mdi.dll");
if hLib<>0 then
begin
MyFunc := GetProcAddress(hLib,"createMDIChild");
with MyFunc(Application,Screen) do
begin
FormStyle :=fsMDIChild;
BorderStyle := bsNone; // Для разнообразия
end;
end;
end;




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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
1-101251
kukuikar
2002-10-21 21:56
2002.10.31
Проблема в следующем. Опять про ...


4-101590
PaNiC
2002-09-19 18:40
2002.10.31
Помогите!!! Отдебагить дочерний процесс!!! ;-)


1-101242
CbIH
2002-10-21 22:40
2002.10.31
Утечка памяти и динамические массивы


14-101499
vopros
2002-10-11 17:17
2002.10.31
Вот скажи на фига перепись?


7-101552
zam2
2002-08-28 23:47
2002.10.31
Как сделать невозможным дамп нажатых клавиш другим приложением?