Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];

Вниз

Как модально показать форму из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
1-33986
neXt
2002-11-01 12:43
2002.11.11
Текстовый файл в ресурсах.


14-34170
Кен
2002-10-16 05:09
2002.11.11
В каком компоненте можно красиво представить текст ? Хотелось бы


14-34171
Карлсон
2002-10-12 14:38
2002.11.11
где план достать и хватит ли одной тонны пластида.


4-34296
ДмитрийК.
2002-09-25 18:31
2002.11.11
Вывод на печать чертежей, построенныхв другой программе


6-34141
demisen
2002-09-13 17:42
2002.11.11
TWebBrowser - Source





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский