Форум: "Сети";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];
ВнизКак в броузер загрузить текст из строковой переменной? Найти похожие ветки
← →
Xenon (2003-05-21 18:16) [0]Есть мемо, содержащее HTML. Надо просмотреть его в TWebBrowser.
Как это сделать?
← →
Ihor Osov'yak (2003-05-21 19:16) [1]1 вариант
procedure ShowHTML(aText: string);
var
v: Variant;
HTMLDocument: IHTMLDocument2;
begin
CheckDocReady(WebBrowser);
HTMLDocument := WebBrowser.DefaultInterface.Document as IHTMLDocument2;
v := VarArrayCreate([0, 0], varVariant);
v[0] := aText; // Here"s your HTML string
HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
HTMLDocument.Close;
end;
2 вариант
function TForm1.LoadFromStream(const AStream: TStream): HRESULT;
begin
AStream.seek(0, 0);
Result := (WebBrowser1.Document as IPersistStreamInit).Load
(TStreamAdapter.Create(AStream));
end;
← →
nikkie (2003-05-21 21:43) [2]во 2-м варианте лучше WebBrowser.DefaultInterface.Document вместо WebBrowser1.Document
3 вариант
var
Doc: Variant;
begin
Doc := WebBrowser1.DefaultInterface.Document;
Doc.write(aText);
end;
во всех вариантах какой-нибудь документ должен быть уже загружен, например, через WebBrowser1.Navigate("about:blank");
← →
Ihor Osov'yak (2003-05-21 23:34) [3]2 nikkie © (21.05.03 21:43)
> во 2-м варианте лучше WebBrowser.DefaultInterface.Document вместо WebBrowser1.Document
Естественно..
>во всех вариантах какой-нибудь документ должен быть уже загружен, например, через WebBrowser1.Navigate("about:blank");
Само собой, забыл упомянуть, спасибо..
← →
Xenon (2003-05-23 14:15) [4]По поводу первого варианта:
1. что такое CheckDocReady(WebBrowser)?
2. Получаю Access violation at adddress ... в строке с HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
← →
xenon (2003-05-23 14:24) [5]Виноват :)
не сделал WebBrowser1.Navigate("about:blank");
всем спасибо
← →
Мое имя (2003-05-27 14:50) [6]а типа бровзер.навигатэ("about:"+Memo.lines.text) не помогает?
← →
Кен (2003-06-01 03:42) [7]А как загрузить текст не в сам браузер, а в один из фрэймов этого браузера ?
← →
Dwemer (2003-06-01 11:27) [8]Когда загружаю текст (3м методом) полоса прокрутки остаются вверху и нижний текст не видно. Как мне прокрутить скрол вниз???
← →
nikkie (2003-06-01 13:51) [9]Есть метод scrollIntoView у интерфейсов IHTMLElement и IHTMLTxtRange.
Если использовать первый, то надо найти в документе какой-нибудь таг (через IHTMLDocument2::get_body и дальше IHTMLElement::get_children).
Но такой подход сильно зависит от того, что пишется в документ и есть ли там вообще таги, за которые можно зацепиться. Поэтому я бы попробовал воспользовался IHTMLTxtRange.
1. вызвать IHTMLDocument2::get_body и запросить интерфейс IHTMLBodyElement
2. вызвать IHTMLBodyElement::createTextRange - запомнили начало и конец документа
3. дописать HTML методом write
4. вызвать IHTMLBodyElement::createTextRange - получили новые начало и конец документа
5. смещаем начало второго TxtRange на конец первого, используя IHTMLTxtRange::setEndPoint("StartToEnd", ...)
6. вызываем IHTMLTxtRange::scrollIntoView.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c