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

Вниз

Загрузка форм из DLL.   Найти похожие ветки 

 
IgorRu   (2004-02-02 10:44) [0]

Создал DLL с формой. Об"явил процедуру:

procedure ShowSettings(MainForm: Pointer); stdcall;

с таким кодом:

with TMainDllForm.Create(MainForm) do begin
ShowModal;
Free;
end;


Если все это запустить и посмотреть в "Диспетчер задач" то там появляется еще одно приложение. Если внутри DLL из TMainDllForm вызвать еще одну форму, то в "Диспетчер задач" появиться еще одно приложение. Такое ощущение, что все они живут отдельно от TApplication. Как создать форму из своей DLL так, что бы не создавалось новое приложение.


 
Ega23   (2004-02-02 10:50) [1]

В DLL у тебя свой экземпляр TApplication.
Я обычно делаю так: передаю в
ShowSettings(MainForm: Pointer); stdcall; не MainForm, a AppHWND.
После чего
Application.Handle:=AppHWND;
Application.CreateForm(TMainDllForm, MainDllForm);


 
IgorRu   (2004-02-02 11:15) [2]

Действительно работает. Теперь правда появились побочные эфекты. При выгрузке библиотеки FreeLibrary(HwndLib) MainForm пропадает с экрана но в панели задачь присутствует. Есль свернуть/развернуть приложение то все восстанавливается.


 
Ega23   (2004-02-02 11:17) [3]

Сохраняй значение AppHandle.


 
IgorRu   (2004-02-02 11:27) [4]

Как?


 
Юрий Федоров   (2004-02-02 11:57) [5]

перед присвоением Application.Handle запомни старое значение
в переменную, перед выходом из procedure ShowSettings восстанови из нее Application.Handle


 
IgorRu   (2004-02-02 12:43) [6]

Вы гении.
Теперь еще бы научить извлекаемую форму создаваться с учетом предустановленных свойств. Например совершенно игнорируется свойство Position.
Я устанавливаю его в poOwnerFormCenter
В функцию добавил параметр - ссылку на вызывающую форму ShowSettings: function (Form: Pointer; AppHWND: Integer): Integer; stdcall;
Запускаю. В лучшем случае создается окно по середине Десктопа



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

Форум: "Основная";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.011 c
1-38883
dima_shapkin
2004-02-05 11:33
2004.02.13
Отрисовка на холсте


3-38759
_mandrake_
2004-01-16 17:58
2004.02.13
Помогите с запросом


1-38836
den777
2004-02-02 18:41
2004.02.13
Вопрос по памяти при работе с дтнамическими массивами


1-38910
Dik
2004-02-04 14:45
2004.02.13
Текстовый редактор


14-39008
Думкин
2004-01-27 06:31
2004.02.13
С днем рождения! 27 января.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский