Re[3]: Internet explorer
От: Ihor Osovyak Украина  
Дата: 07.06.04 00:17
Оценка:
Здравствуйте, Аноним, Вы писали:



А>>>как это сделать?


_>>А не легче ли сохранить этот AnsiString во временный файл с расширением .html, да запустить его ShellExecute'ом или WinExec'ом...

_>>Я думаю, что легче...

А>да...так легче


А>а если мне надо чтоб эксплорер запускался в окне программы?


Если имеется ввиду полноценный IE — в принцыпе невозможно. Как невозможно в "своем окне" запустить иной процесс.
Если имеется ввиду активИкс от IE — ради бога — TWebBrowser (D) или как его там в билдере, cppWebBrowser..



> А>>>нужно программно запустить IE, передав ему HTML для отображения, который хранится в AnsiString.


Способов много. Один из вариантов:


var 
  iWB: IWebBrowser2;
  ov: olevariant; 
  v: Variant;
  iDoc: IHtmlDocument2;
...

 iWB := CreateOleObject('InternetExplorer.Application.1') as IWebBrowser2;

 ov :=  'about:blank';
 iWB.Navigate(ov, emptyparam, emptyparam, emptyparam, emptyparam);

 while iWB.ReadyState <> 4 do Application.ProcessMessages;

 iDoc:= iWB.DefaultInterface.Document as IHtmlDocument2;
  
 v := VarArrayCreate([0, 0], varVariant);
 v[0] := aText; // Here's your HTML string
 
 iDoc.Write(PSafeArray(TVarData(v).VArray));
 iDoc.Close;



Ps. Писалось по памяти, возможно есть опячатки, но не искажающее смысла решения.


...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.