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

Вниз

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

 
vtur   (2009-11-10 19:38) [0]

Доброго дня, уважаемые коллеги!
Возможно кто-то сможет помочь в разрешении проблемы.
Я столкнулся с необходимостью оформления некоего, ранее разработанного в среде Делфи 7, функционала  с визуальными компонентами в виде DLL-модуля для использования в другой среде разработки. Функционал оформлен как Фрейм, который
должен "ложиться" в нужное место (окно) основного приложения, например, на элемент TPanel. Handle окна передается функции инициализации функционала  из основного приложения

type
 TVCFrame = class(TFrame)
:
FPVControl:TPanel;
mFr:TVCFrame;
:
TVCInterface.InitStructWindows(HOwner:THandle);
begin
   FPVControl:=FindControl(HOwner) as TPanel;
   if(FPVControl<>Nil)then
     mFr:=TVCFrame.Create(FPVControl);
:

Так вот, при тестировании DLL в (Делфи 7)-приложении фрейм фукционала почему-то не создается.
В чем может быть причина?
Подскажите, как правильно создавать такие объекты.

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


 
Сергей М. ©   (2009-11-10 19:45) [1]


> для использования в другой среде разработки.


Какой нафих TPanel в другой среде разработки, если это не BCB ?
Головой надо думать, а не шапку носить.


 
palva ©   (2009-11-10 20:13) [2]

ActiveX надо создавать. Но это много переделывать.


 
vtur   (2009-11-11 10:41) [3]

Сергею М.
Другая среда разработки - это Делфи 6, TPanel там имеется.
Кроме того, я указал, что тестирую DLL в (Делфи 7)-приложении.
Конечно же строка

  FPVControl:=FindControl(HOwner) as TPanel;

некорректна.

Но требуется более конструктивное предложение, а не "Головой надо думать, а не шапку носить"


 
Сергей М. ©   (2009-11-11 10:50) [4]


> Другая среда разработки - это Делфи 6, TPanel там имеется


Да мало ли что там еще имеется !
Версии VCL разные, поэтому нет никакой гарантии совместимости одноименных классов.
Это раз.

Экземпляр RTL должен быть единым.
Это два.


 
sniknik ©   (2009-11-11 11:19) [5]

> Это два.
я бы еще три добавил - формам в dll не место!

> Но требуется более конструктивное предложение
> ActiveX надо создавать.
куда уж более конструктивно...


 
Сергей М. ©   (2009-11-11 11:28) [6]


> sniknik ©   (11.11.09 11:19) [5]


Солидарен.


 
Игорь Шевченко ©   (2009-11-11 11:31) [7]


> я бы еще три добавил - формам в dll не место!


При грамотном написании - вполне себе место. Не надо быть более правоверным, чем Аллах


 
RWolf ©   (2009-11-11 11:44) [8]

Я делаю так:
procedure AttachConfig(hParent:THandle);
begin
 frmConfig:=TfrmConfig.CreateParented(hParent);
 frmConfig.Left:=0;
 frmConfig.Top :=0;
 frmConfig.Show;
 Application.InsertComponent(frmConfig);
end;


 
sniknik ©   (2009-11-11 11:46) [9]

> При грамотном написании - вполне себе место.
грамотное написание обеспечивает работу, а не предназначение... Будда. :)


 
Anatoly Podgoretsky ©   (2009-11-11 12:15) [10]

> sniknik  (11.11.2009 11:46:09)  [9]

Грамотное написание может обеспечить работой на много лет.


 
vtur   (2009-11-11 12:23) [11]

Большое спасибо RWolf - Ваши 8 строчек кода помогли больше,
чем все досужие рассуждения "знатоков"!
Все получилось!


 
Сергей М. ©   (2009-11-11 12:27) [12]


> чем все досужие рассуждения "знатоков"


Ждут тебя грабли с этим кодом, большие и малые)


 
Dennis I. Komarov ©   (2009-11-11 12:32) [13]


> Ждут тебя грабли с этим кодом, большие и малые)

А разве без них кто-нить становился на путь истинный?


 
Дмитрий Белькевич   (2009-11-11 12:41) [14]


> При грамотном написании - вполне себе место. Не надо быть
> более правоверным, чем Аллах


+1. Нормально в длл формы работают.


> Ждут тебя грабли с этим кодом, большие и малые)


У каждого свой путь к просветлению ;)


 
Сергей М. ©   (2009-11-11 12:43) [15]

Кто предупрежден, тот вооружен)


 
Anatoly Podgoretsky ©   (2009-11-11 13:09) [16]


> А разве без них кто-нить становился на путь истинный?

Некоторым нужно очень много граблей.


 
Anatoly Podgoretsky ©   (2009-11-11 13:10) [17]

> Сергей М.  (11.11.2009 12:43:15)  [15]

Но твои советы и замечания явно остались непонятыми и были отвергнутыми.


 
Dennis I. Komarov ©   (2009-11-11 14:12) [18]


> Но твои советы и замечания явно остались непонятыми и были
> отвергнутыми.

Значит будет больно...



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

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

Наверх





Память: 0.48 MB
Время: 0.084 c
2-1257440700
-=SV=-
2009-11-05 20:05
2009.12.27
Как сохранять позицию компонетв после закрытия программы


15-1250874659
Yegorchic
2009-08-21 21:10
2009.12.27
Сломался RAID-массив


1-1231824463
inferno
2009-01-13 08:27
2009.12.27
Передать параметром процедуре указатель на массив


2-1257770354
kyn66
2009-11-09 15:39
2009.12.27
Переменная цикла с неверным начальнымзначением


2-1257442024
V
2009-11-05 20:27
2009.12.27
TBitmap и Array of Byte





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