Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
6-9260
Nikolay
2001-12-17 22:15
2002.03.04
только не бейте ногами


4-9333
mIg
2001-12-19 10:46
2002.03.04
Скажите, как отловить событие открытие файла на чтение...


1-9165
Слава
2002-02-14 05:48
2002.03.04
Help,please!


14-9286
Alx2
2002-01-18 08:09
2002.03.04
Святая вода, или тема на злобу дня


1-9150
Loxly
2002-02-17 14:22
2002.03.04
Выношу часть функциональности проги в DLL, но размер EXE шника НЕ УМЕНЬШАЕТСЯ.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский