![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание приложений с использованием 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 ?
Головой надо думать, а не шапку носить.