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

Подключение визуального компонента к программе на WinAPI   Найти похожие ветки 

← →
Tenrai   (2003-04-29 04:48) [0]

Доброго времени суток! Пишу прогу на апи, необходимо подключить к проекту единственный визуальный компонент (к примеру, TWebBrowser) как это сделать и возможно ли это, не подключая всю VCL?


← →
Крот ©   (2003-04-29 06:17) [1]

Вместе с модулем SHDocVw.pas(там TWebBrowser) подключится изрядный кусок VCL. Правда, по-моему, "положить" TWebBrowser на окно на чистом API не получиться. В принципе, можно написать OLE-контейнер "руками", реализовав все необходимые интерфейсы, и внедрить туда WebBrowser, но это удовольствие так себе - ниже среднего.

P.S. Вообще, не очень понятно, зачем понадобилось писать программу на чистом API.


← →
Anatoly Podgoretsky ©   (2003-04-29 09:02) [2]

Ну какой же чистый АПИ, если в нем используется VCL


← →
Digitman ©   (2003-04-29 10:08) [3]


> Tenrai


выноси компонент в DLL

таким образом будут "и волки сыты и овцы целы" : проект хост-приложения останется "на чистом API", но при этом будет иметь возможность воспользоваться в нужный момент времени преимуществами VCL-компонента, который будет фигурировать в отдельном библиотечном проекте

минимум, что потребуется - обеспечить передачу в нужные DLL-вызовы параметром хэндл некоего окна хост-приложения, которое будет родительским для создаваемого в теле DLL дочернего окна, ассоциированного с TWebBrowser в контексте TWinControl


← →
Tenrai   (2003-04-29 11:31) [4]


> выноси компонент в DLL

Огромное спасибо, вот только я слабо себе представляю, как можно
компонент внести в ДЛЛ, ибо ничего кроме функций я в ДЛЛ не выносил... объясните поподробнее, как это реализовать?


← →
Digitman ©   (2003-04-29 12:05) [5]


> ничего кроме функций я в ДЛЛ не выносил


вот в теле одной из "вынесенных" ф-ций и создавай компонент

MyWebBrowser := TWebBrowser.Create(nil);
MyWebBrowser.ParentWindow := переданный_параметром_хэндл_родительского_окна


← →
Tenrai   (2003-04-30 03:48) [6]

Большое спасибо, после полутора часов бдения мне это удалось :о)))


← →
nikkie ©   (2003-04-30 13:05) [7]

Непонятно только зачем тогда было мучиться. Писал бы уж все на VCL...

Как написал Крот, совсем на API это сделать можно было только написав собственный OLEContainer, а это занятие не для слабых духом. Зато написав один раз, можно было бы использовать для любых ActiveX контролей.


← →
Tenrai   (2003-05-01 05:46) [8]


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

в том то и дело, что те 200 кб, в которые втиснут VCL, мне совсем не нужны :о)) и потому у мня прога занимает не больше 200 кб, а вместе с длл - около 40 кб :о)) ради того и старался :о))


← →
nikkie ©   (2003-05-01 13:55) [9]

какие-то странные цифры ты приводишь. я так думаю, ты нолик не в то место поставил. скорее всего, программа твоя занимает 20Kb, а вместе с dll - 400Kb. dll-то результате прицепила к себе vcl...



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

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



Память: 0.47 MB
Время: 0.012 c
11-7372
SPeller
2002-10-10 15:54
2003.07.03
ShowModal


4-7759
oduvan
2003-05-02 12:41
2003.07.03
Как нажать на кнопку в другом окне


1-7482
yozch_
2003-06-15 15:33
2003.07.03
goEditing


3-7324
keymaster
2003-06-05 15:33
2003.07.03
Как работать с удалённой БД?


1-7427
eLVik
2003-06-23 11:50
2003.07.03
Поиск файлов




   Наверх