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

Вниз

Dll Forms In Delphi   Найти похожие ветки 

 
SkySlider   (2003-06-16 16:15) [0]

Добрый день.

При присвоении свойству Parent значения для вызываемой (из библиотеки) формы она становится не видима. Хотя для обычных форм можно запросто написать подобное:

myDllForm.Align = alClient;
myDllForm.Parent = Panel1;

(или myDllForm.Parent = myMainForm;)

и все прекрасно. В чем здесь грабли?


 
Skier   (2003-06-16 16:19) [1]

>SkySlider © (16.06.03 16:15)
1) А грабли в том что TYourForm в host-приложении и TYourForm в
DLL это разные классы.
2) Бывает полезно делать такую вещь в DLL
Application.Handle := HostAppHandle;


 
Юрий Федоров   (2003-06-16 16:21) [2]

Все та же попытка передачи указателя на экземпляр класса в DLL.
Либо компилировать все с пакетами, либо использовать ParentWindow


 
SkySlider   (2003-06-16 17:26) [3]

1. Application.Handle := HostAppHandle;
Возможно и полезно, только при данном насморке не помогает.

2. и в приложении, и в Dll используется один класс.
class TfrmCommonDlg : public TForm
{
...
};


3. Можно подробнее насчет ...все с пакетами... и ...ParentWindow...


 
Юрий Федоров   (2003-06-16 17:39) [4]

>>2. и в приложении, и в Dll используется один класс.
Разные классы, так как класс этот компилирется 2 раза - в Exe и в DLL - получаем 2 разных класса, пусть и с одинаковыми методами\свойствами.
>>...все с пакетами
см. Project Options \ Packages \ Build with run-time packages.
Включить нужно тот пакет, в который входит TPanel, причем как в Exe так и в DLL
При этом при переносе на другую машину придется соответствующий BPL тащить с собой.
>>...ParentWindow
Вместо Parent присваивать ParentWindow(handle окна)


 
SkySlider   (2003-06-16 17:46) [5]

Юрий Федоров спасибо за объяснение ... ПОЛУЧИЛОСЬ!!! Ураа!



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

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

Наверх




Память: 0.45 MB
Время: 0.026 c
1-84141
NailMan
2003-06-10 16:32
2003.06.26
Отключение скринсейвера


11-84058
Garrison
2002-08-21 14:08
2003.06.26
Хочу :))


1-84375
dRake
2003-06-07 00:56
2003.06.26
Как заставить прогу свернуться в трей?


1-84242
VISA
2003-06-13 13:56
2003.06.26
TIniFile


14-84636
sly fox
2003-06-10 08:34
2003.06.26
Где взять готовые отчеты?





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