Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


vtur ©   (2009-11-10 19:38:00) 

Доброго дня, уважаемые коллеги!
Возможно кто-то сможет помочь в разрешении проблемы.
Я столкнулся с необходимостью оформления некоего, ранее разработанного в среде Делфи 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, фрейм (визуальные компоненты) которой должен "ложиться" в нужное место (окно) основного приложения, столкнулся впервые.


Dennis I. Komarov   (2009-11-11 14:12:00) [1]


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

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


Anatoly Podgoretsky   (2009-11-11 13:10:00) [2]

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

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


Anatoly Podgoretsky   (2009-11-11 13:09:00) [3]


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

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


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

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


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


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


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


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


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


Dennis I. Komarov   (2009-11-11 12:32:00) [6]


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

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


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


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


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


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

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


Anatoly Podgoretsky   (2009-11-11 12:15:00) [9]

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

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


sniknik   (2009-11-11 11:46:00) [10]

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


RWolf   (2009-11-11 11:44:00) [11]

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


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


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


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


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


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


Солидарен.


sniknik   (2009-11-11 11:19:00) [14]

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

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


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


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


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

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


vtur   (2009-11-11 10:41:00) [16]

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

  FPVControl:=FindControl(HOwner) as TPanel;

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

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


palva   (2009-11-10 20:13:00) [17]

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


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


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


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо