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