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

Вниз

Создание приложений с использованием 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.01 c
2-1257739169
Андрей Смирнов
2009-11-09 06:59
2009.12.27
Как правильно передать массив URL в Функцию (WinInet)


15-1256434719
Antoxa
2009-10-25 04:38
2009.12.27
Почему сайт "умер"..?


15-1256734162
И. Павел
2009-10-28 15:49
2009.12.27
Глюк блокнота


2-1257545435
Igorishe
2009-11-07 01:10
2009.12.27
передача метода


15-1256614569
Big Joe
2009-10-27 06:36
2009.12.27
Домен на национальном языке