Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.04;
Скачать: CL | DM;

Вниз

ТВебБраузер   Найти похожие ветки 

 
dimonf   (2001-12-15 14:56) [4]

------------------------------------------------------------------------------
sorry задаю вопросы за которые через недельку самому стыдно.. Но влез в не совсем знакомую область.
Итак: планируется использовать Doc1:IHTMLDocument2 чисто функционально (без связи с визуальными компонентами). В тестовом приложении делаю

procedure TForm1.FormCreate(Sender: TObject);
begin
Doc1:=CoHTMLDocument.Create;
end;

и ес-но
procedure TForm1.FormClose(Sender: TObject; var Action:
TCloseAction);
begin
Doc1._Release;
end;
C Doc1 пока никаких операций не делаю. Когда закрываю
приложение -
exception
..
Если Doc1._Release закоментировать - все Ok ;

Так вопрос - надо ли освобождать интерфейсы или приложение сделает это само (есть подозрение.. ).
И если не надоел - два маленьких вопроса на перспективу:
1. как более рационально содержимое Doc1 (планирую модифицировать в рантайме) в случае необходимости впихнуть в TWebBrowser (от IE4 через activeX) для визуализации того, что навоял;
2. что нужно помещать в начале PSafeArray^ перед юзанием IHTMLDocument2.write(psarray: PSafeArray); l - что то чтение msdn не очень то помогло ...;

Ответить на вопрос по почте.


Ответы:


--------------------------------------------------------------------------------
6/21/2000 11:56:26 PM | Дополнение или отзывы на ответы от автора вопроса

Спасибо за желание помочь. Но за єти две недели я основательно разобрался
с IHTMLDocument2 - действительно дивные вещи делать можно.
Насчет PSafeArray люди (Tolik Tentser из fido7/ru/delphi)
посоветовали так:


var
Document: IHtmlDocument2;
V: Variant;
begin
Document := WebBrowser.Document as IHtmlDocument2;
V := VarArrayCreate([0, 0], varVariant);
V[0] := "<HTML><HEAD><TITLE>Hello World</TITLE>" +
"</HEAD><BODY>Hello again !</BODY></HTML>";
Document.Write(PSafeArray(TVarData(v).VArray));
Document.Close;
end;

Может еще кому пригодится. Только вначале я делаю
WebBrowser.Navigate("about:blank",ov1,ov2...); - а эту идейку
подсмотрел в Королевы.

Os Ig


--------------------------------------------------------------------------------
6/21/2000 7:33:42 PM

Насчет второго вопроса:
У TWebBrowser"а есть свойство Document, оно как раз реализует
интерфейс IHTMLDocument2. Очень удобно доступаться к любым
"внутренностям" html-документа.
И перезаписывать его полностью или изменять по месту.

Насчет PSafeArray не могу сказать, еще не разбиралась. А это
академический интерес или без него Вам никак не обойтись ?

Лена Филиппова


--------------------------------------------------------------------------------
5/29/2000 6:10:08 PM

По первому вопросу.
Вы догадываетесь абсолютно правильно. Doc1._Release вызывается
автоматически. Мало того, вместо Doc1.Relese можно написать
Doc1 := nil; При этом автоматически вызовется Doc1._Release и
ошибок при закрытии формы не будет. Можно вообще ничего не писать,
тогда объект прибьется автоматически. Если же нужно точно указать,
когда интерфейс должен быть освобожден, тогда пишите Doc1 := nil;

Ссылки на интерфейсы автоматически обнуляются при разрушении
экземпляра объекта, в котором она (ссылка) объявлена или при выходе
из процедуры (если ссылка на интерфейс объявлена как переменная в
процедуре).

В принципе, при работе с интерфейсами, вызывать метод _Release не
рекомендуется, т.к. это может привести к тому, что объект,
реализующий интерфейс будет освобожден, а ссылка на него еще
останется. Это и произошло в Вашем случае.

По остальным вопросам - сори, не в курсе (не ковырял я это).
----------------------------------------------------------------------



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

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

Наверх




Память: 0.48 MB
Время: 0.013 c
6-9263
Leviathan
2001-12-10 22:29
2002.03.04
Ошибка на сокете


14-9271
модератор
2002-01-14 11:19
2002.03.04
По вопросам модерирования просьба обращаться по адресу


14-9276
VEG
2002-01-16 23:05
2002.03.04
Народ!!! Как можно качнуть всю инфу с картриджа 8 и 16 битных приставок???


1-9241
yaJohn
2002-02-15 16:56
2002.03.04
RUSSIAN_CHARSET


1-9181
Johnmen
2002-02-14 12:20
2002.03.04
Кто плотно общался с DBGridEh ?