-
> Сергей М. © (11.03.08 19:25) [16]
>
>
> > если имеется ввиду bpl
>
>
> Касаемо твоей вожделенной "dll с формой" - нет, не имеется)
>
> Форма твоя как родилась в твоей dll, так там и будет жить,
> не волнуйся)
Жду руководящих действий или ссылок на то как :)
-
> Жду руководящих действий
Уже даны в достаточном объеме в [10]
-
> Сергей М. © (12.03.08 16:18) [21]
>
>
> > Жду руководящих действий
>
>
> Уже даны в достаточном объеме в [10]
Есть вводная информация как с этим работать? Или лучше элементарные примерчики?
-
> как с этим работать?
С чем ?
Сказано же - простейшее решение проблемы состоит из двух простейших же пунктов:
1. В исх.кодах своих exe- и dll-проектов убираешь все касаемое параметра Appl, т.е. передача этого параметра не нужна вообще.
2. Во всех своих проектах устанавливаешь крыжик
Project->Options..->Packages->Build With Run-Time Packages
и после этого полностью ребилдишь эти проекты.
Все !! Больше никаких телодвижений делать не нужно.
Что еще не понятно ?)
-
Попробую
-
Сергей М. © (13.03.08 09:06) [23]
> как с этим работать?
С чем ?
Сказано же - простейшее решение проблемы состоит из двух простейших же пунктов:
1. В исх.кодах своих exe- и dll-проектов убираешь все касаемое параметра Appl, т.е. передача этого параметра не нужна вообще.
2. Во всех своих проектах устанавливаешь крыжик
Project->Options..->Packages->Build With Run-Time Packages
и после этого полностью ребилдишь эти проекты.
Все !! Больше никаких телодвижений делать не нужно.
Что еще не понятно ?)
Вобщем - то сделал.... как мне теперь реализовать MDI?
-
> как мне теперь реализовать MDI?
Ты его уже реализовал - Application.MainForm у тебя fsMDIForm, что и является осн.условием для создания MDI-приложения при поддержке VCL.
-
Вобщем все перебьюлдил, все работает, теперь что делать?
-
Как мне указать для форм, находящихся в dll что exe форма является для них материнской?
-
> IntruderLab (13.03.08 12:38) [28]
Зачем ?
Все уже указано и все работает, ты сам же это сказал в [27].
-
дак млин не в MDi режиме работает
-
> не в MDi режиме работает
>
Убедись, что Application.MainForm.FormStyle = fsMDIForm
-
> Сергей М. © (13.03.08 13:38) [31]
>
>
> > не в MDi режиме работает
> >
>
>
> Убедись, что Application.MainForm.FormStyle = fsMDIForm
это exe? а как указать в dll?
-
В свойствах формы: FormStyle ставишь MDiForm. А как делается если все находится в экзэ? точно также и тут.
-
> это exe? а как указать в dll?
Сказка про белого бычка)
Говорили-говорили про единый объект Application - и все впустую)
Ты пойми, что при BwRTP-опции объект Application и, соотв-но, объект Application.MainForm и в ехе и в длл - это один и тот же объект !
-
То есть в этом случае уже не надо в dll передавать хендлы Application и Screen?
-
> Сергей М. © (13.03.08 14:06) [34]
>
>
> > это exe? а как указать в dll?
>
>
> Сказка про белого бычка)
>
> Говорили-говорили про единый объект Application - и все
> впустую)
>
> Ты пойми, что при BwRTP-опции объект Application и, соотв-
> но, объект Application.MainForm и в ехе и в длл - это один
> и тот же объект !
Сергей, сорри... просто привык к одной системе - очень сложно представить как в MDI просто это переделать - вот и куча вопросов из -за этого... Сейчас попробую
-
Не понимаю, пишет - Нет возможности создать форму, ни одна MDI форма не является активной, все таки хоче указания Application
-
Хелп, ничего не понимаю. Напишите просто тупо как вызвать форму из DLL чтобы она стала Child для mdi
у меня в exe frmMain.FormStyle := fsMDIForm;
в dll frmTest.FormStyle := fsMDIChild;
функция вызова формы frmTest из dll
function ShowTest:LongInt;StdCall;
var frmTest : TfrmTest;
begin
Result := LongInt(TfrmTest.Create(Application); --навреное тут не так, как сделать не знаю
end;
в exe:
var LibHandle : THandle;
****
LibHandle := LoadLibrary('iHercules.dll');
if LibHandle <> 0 then
begin
@ShowTest := GetProcessAddress(LibHandle,'ShowTest);
ShowTest;
end;
FreeLibrary(LibHandle);
Что я не так делаю.... в не MDI приложении с модальным вызовом форм все работет, не могу понять как это реализуется в MDI
-
Чему равно
Application.MainForm
непосредственно перед вызовом
TfrmTest.Create(Application)
?