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

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

Подключение визуального компонента к программе на WinAPI [D6, WinXP]


Tenrai ©   (2003-04-29 04:48:00) 

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


nikkie   (2003-05-01 13:55:00) [1]

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


Tenrai   (2003-05-01 05:46:00) [2]


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

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


nikkie   (2003-04-30 13:05:00) [3]

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

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


Tenrai   (2003-04-30 03:48:00) [4]

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


Digitman   (2003-04-29 12:05:00) [5]


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


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

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


Tenrai   (2003-04-29 11:31:00) [6]


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

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


Digitman   (2003-04-29 10:08:00) [7]


> Tenrai


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

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

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


Anatoly Podgoretsky   (2003-04-29 09:02:00) [8]

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


Крот   (2003-04-29 06:17:00) [9]

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

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


Наверх

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