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

Вниз

Как модально показать форму из DLL   Найти похожие ветки 

 
b-Ars ©   (2002-10-24 12:29) [0]

Библиотека вызывается динамически, после своих грязных дел хочу её удалить из памяти, спасет только модальный вызов. Если можно, кодом плиз...


 
Игорь Шевченко ©   (2002-10-24 12:30) [1]

ShowModal, очевидно


 
b-Ars ©   (2002-10-24 12:48) [2]

>Игорь Шевченко © (24.10.02 12:30)
Это я уже слышал сто раз. Вот вызываю ф-ию, допустим Show, из библиотеки, в которой выводится эта форма, но откуда она узнает, что она будет Modal для формы приложения, вызвавшего эту функцию?


 
Игорь Шевченко ©   (2002-10-24 13:09) [3]

Не узнает. Надо вызывать не Show, а ShowModal


 
b-Ars ©   (2002-10-25 12:19) [4]

>Игорь Шевченко © (24.10.02 13:09)
М-М-Млин, Игорь, вы издеваетесь :) Show - это допустим функция моя, в которой Visible формы из библиотеки ставится в True. Из того, что вы говорите получается, что если в этом месте я вызову её ShowModal всё прокатит, форма библиотеки заблокирует окно вызвавшего её приложения? Я так понял?


 
Игорь Шевченко ©   (2002-10-25 12:51) [5]

Я отнюдь не издеваюсь. Вопрос был: Как модально показать форму из DLL. Ответ: ShowModal

Могу добавить, что вызов ShowModal (равно как создание и освобождение формы) должны находиться внутри DLL, лучше, если в одной функции.


 
NailS ©   (2002-10-25 14:17) [6]

Передать в длл Application.Handle и там присвоить его местному Application.Handle?


 
b-Ars ©   (2002-10-25 14:57) [7]

Код вызова библиотеки в программе:

Handle:=LoadLibrary("SAMPLE.DLL");
if Handle>=32 then
begin
@MyImportProc:=GetProcAddress(Handle,"ShowLogo");
MyImportProc();
end;
FreeLibrary(Handle);
end;


Код процедуры в библиотеке:

procedure ShowLogo;
Begin
Frm_Logo:=TFrm_Logo.Create(Application);
Frm_Logo.ShowModal; <------- Как вы советуете
End;


Итог вызова:
Exception EInvalidOperation in module SAMPLE.DLL at 00033EDD2 и не пахнет никаким модалом.

Соответственно вопрос: Где правда?


 
Игорь Шевченко ©   (2002-10-25 15:11) [8]

Frm_Logo.ShowModal;
Frm_Logo.Free;


 
Skier ©   (2002-10-25 15:15) [9]

>b-Ars
Игорь Шевченко © (25.10.02 15:11) + try ... finally ... end


 
b-Ars ©   (2002-10-30 14:31) [10]

>Игорь Шевченко © (25.10.02 15:11)
>Skier © (25.10.02 15:15)
Извините, все сделано как вы говорите, но: Exception EInvalidOperation in module SAMPLE.DLL at 00033EDD2, может быть у формы какие-то особенные настройки или ещё что должно быть?



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
1-34039
panna
2002-10-30 16:12
2002.11.11
Подскажите,пожалуйста!!!


14-34239
Polevi
2002-10-23 16:34
2002.11.11
http://www.yandex.ru/yandsearch?text=DS+J%7BETKB%3F+NJDFHBO+


14-34256
SVIN
2002-10-24 06:16
2002.11.11
Вычислительная Математика


14-34236
777
2002-10-23 00:47
2002.11.11
просто вдруг интересно стало


1-34012
Кен
2002-11-02 07:28
2002.11.11
Глюк! У меня в файле справки которая вызывается по F1 исчез Указа