Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.03;
Скачать: 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 вся ветка

Текущий архив: 2003.07.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
7-7737
Sniffer
2003-04-18 14:09
2003.07.03
Опять о Ctrl+Alt+Del, Alt+Tab...


14-7636
Schummi
2003-06-14 18:02
2003.07.03
Как заработать деньги?


3-7309
yaric
2003-06-09 09:10
2003.07.03
События в Interbase


1-7379
Tayfun
2003-06-20 11:50
2003.07.03
Подскажите пожалуйста как добавить в EXУ файл текстовый ресурс?


3-7289
Stelius
2003-06-07 22:54
2003.07.03
По поводу сортировки