Вниз
Скачать: CL | DM;

Создание элемента управления из dll   Найти похожие ветки 

 
Alexey Morceleb   (2004-08-03 14:25) [0]

Проблема: нужно, чтобы из функции, находящейся в dll можно было создать на форме приложения кнопку, список,и т.д. и управлять ими произвольно. Спасибо!


 
Sergey Kaminski ©   (2004-08-03 15:31) [1]

Конкретно - в чем проблема?


 
REA ©   (2004-08-03 16:28) [2]

Это несколько проблематично (но наверно можно) - лучше использовать для этой цели packages.


 
Sergey Kaminski ©   (2004-08-03 16:31) [3]


function DLL_func (AForm: TForm): TButton;
begin
 Result := TButton.Create (AForm);
 Result.Parent := AForm;
 Result.Left := 10;
 Result.Top := 20;
 Result.OnClick := DLL_OnBtnClick;
 Result.Show;
end;


Уточни проблему или это подходит?


 
y-soft ©   (2004-08-03 17:06) [4]

>Sergey Kaminski ©   (03.08.04 16:31) [3]

Это опасный способ - приведет к неприятностям, если Dll и вызывающая программа скомпилированы в разных версиях Delphi


 
y-soft ©   (2004-08-03 17:27) [5]

Если уж так и делать, то проводя всю обработку на уровне класса только внутри Dll. При инициализации передавать не экземпляр родителя, а хендл его окна, и вызывать конструктор не Create, а CreateParented. Доступ к методам и свойствам экспортируемого контрола только через функции-обертки или/и посылку оконных сообщений (пример: реализация на Delphi работы с ActiveX)


 
Sergey Kaminski ©   (2004-08-03 17:38) [6]


Это опасный способ - приведет к неприятностям, если Dll и вызывающая программа скомпилированы в разных версиях Delphi


Согласен. Это приведет к неприятностям и во многих других случаях.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
14-1090994458
TohaNik
2004-07-28 10:00
2004.08.15
Рассылка


14-1091094994
Mellon
2004-07-29 13:56
2004.08.15
Народ помогите по компонентам пожайлуста


14-1091097859
Piter
2004-07-29 14:44
2004.08.15
Комп виснет от перегрева


6-1087215967
KLEVO
2004-06-14 16:26
2004.08.15
Обмен данными.


14-1091067226
menart
2004-07-29 06:13
2004.08.15
Завтра день сисадмина!




   Наверх