![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Програмное закрытие формы из Dll
206196131 © (2008-03-29 20:05:00)есть приложение оно подгружает dll
в dll 2 формы, загружается сразу форма1
после разных всяких проверок либо открывается форма2 либо не открыватся.
в родительском окне
Application.CreateForm(Tform1,form1);
в form1
if (что с чемто = 1) then
Application.CreateForm(Tform2,form2)
else
form1.close;
form1.close вылетает по access violation at address 12345678 in module my.dll
при этом если закрываеть
form1 крестиком то никаких проблем....
Loginov Dmitry (2008-03-29 22:48:00) [21]> )) уже что то, здесь и сейчас это както решаемо ?
Тебе решать!
206196131 (2008-03-29 22:46:00) [22])) уже что то, здесь и сейчас это както решаемо ?
или все переписывать
Loginov Dmitry (2008-03-29 22:40:00) [23]> вот незадача... application в dll и в хост приложении разный
> бааалин... сколько можно твердить сохдавай bpl, там application
> одинаковый. и да будет тебе известно что bpl никакого, ну
> ни малейшего абсолютно, отношения к com не имеет. эта та
> же самая dll. просто грузится специальными средствами, благодара
> которым например TForm из bpl тот же самый класс что и Tform
> в хлст приложении. и еще много вкусностей о которых довольно
> подробно описано в справке.
зачем bpl создавать? Куда проще поставить заветную галочку в опциях обоих проектов!
Loginov Dmitry (2008-03-29 22:38:00) [24]1. приведи код инициализации dll-ки.
2. попробуй переименовать в инспекторе объектов форму Form1 во что-нибудь другое (например Form3)
206196131 (2008-03-29 22:38:00) [25]руками form1 закрывается без проблем
а по form1.Close нет
Palladin (2008-03-29 22:37:00) [26]вот незадача... application в dll и в хост приложении разный бааалин... сколько можно твердить сохдавай bpl, там application одинаковый. и да будет тебе известно что bpl никакого, ну ни малейшего абсолютно, отношения к com не имеет. эта та же самая dll. просто грузится специальными средствами, благодара которым например TForm из bpl тот же самый класс что и Tform в хлст приложении. и еще много вкусностей о которых довольно подробно описано в справке.
206196131 (2008-03-29 22:28:00) [27]обе формы из dll
ничего не должно происходить, должна зарыться форма form1
после того как отыкрыта form2
Loginov Dmitry (2008-03-29 22:19:00) [28]> var
> form2:Tform2;
> begin
> form2:= Tform2.Create(application);
> form2.show;
> form1.Close;//слетат тут
> end;
>
> так ничего не меняется
что такое TForm1? Где данный объект создается (в EXE или DLL)?
где создается TForm2?
Что у тебя должно происходить при вызове form1.Close?
Loginov Dmitry (2008-03-29 22:15:00) [29]> Application.CreateForm(Tform2,form2)
> на последнии момент было так, есть другие предложения
Дочерние окна fsMDIChild обычно создают следующим образом:
Tform2.Create(Owner);
и никаких переменных типа form2не используют. Можно конечно использовать, но только если будет создана всего одна форма Tform2.
206196131 (2008-03-29 22:13:00) [30]var
form2:Tform2;
begin
form2:= Tform2.Create(application);
form2.show;
form1.Close;//слетат тут
end;
так ничего не меняется
206196131 (2008-03-29 22:06:00) [31]Application.CreateForm(Tform2,form2)
на последнии момент было так, есть другие предложения
Loginov Dmitry (2008-03-29 21:49:00) [32]> обычное fsMDIForm все остальные окна fsMDIChild
> Application.CreateForm(Tform2,form2)
Это дочернее окно так создается, или что?
> form1.close вылетает по access violation at address 12345678
> in module my.dll
>
> при этом если закрываеть
> form1 крестиком то никаких проблем....
Вот и отлаживай! F7 и F8 рулят! Если не в состоянии, то укажи более ЧЕТКО, в чем проблема? И прислушайся к совету насчет пакетов. Это избавляет от колоссальной доли геморроя, поверь...
206196131 (2008-03-29 21:22:00) [33]если бы все все умели, половино человечества сидело бы без работы))
Сергей М. (2008-03-29 21:14:00) [34]Странно другое - неумение или нежелание пользоваться отладчиком.
206196131 (2008-03-29 21:11:00) [35]странно то что по крестику форма нормально зарывается ни начто не материться
Сергей М. (2008-03-29 21:08:00) [36]
> есть конкретная проблема
Эта "проблема" может зависеть от множества факторов !
> неуместны тут ни blp ни соm
Вот com точно не уместен, а bpl оч даже уместен)
206196131 (2008-03-29 21:05:00) [37]мужики причем здесь bpl
есть конкретная проблема, программное закрытие формы загруженной из dll
сама себя форма должна закрыть
и неуместны тут ни blp ни соm
Palladin (2008-03-29 21:00:00) [38]ага... bpl создавать, а не dll. и эффект тот же и все работает.
206196131 (2008-03-29 20:59:00) [39]Германн вам бы на каком нить irc канале сидеть трафик гонять ))
206196131 (2008-03-29 20:57:00) [40]и не сомниваюсь ))
но по сути дела есть какие нить предложения, или нет