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

Вниз

TWebBrowser   Найти похожие ветки 

 
буратино   (2006-01-24 19:43) [0]

Как можно загрузить HTML код в TWebBrower, если я его формирую программно и не могу сохранить на носитель? т.е. как мне напрямую осущетсвить передачу кода (string) в браузер? подскажите.

локально открыть тяму хватает, но сохранять код в файл нельзя (

з.ы. простите если повторяюсь с вопросом.


 
Gero ©   (2006-01-24 22:04) [1]

procedure LoadWBFromStrings(WebBrowser: TWebBrowser; const AStrings: TStrings);
var
 Stream: TMemoryStream;
begin
 if not Assigned(WebBrowser.Document) then
   WebBrowser.Navigate("about:blank");
 Stream := TMemoryStream.Create;
 try
   AStrings.SaveToStream(Stream);
   Stream.Position := 0;
   (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(Stream));
 finally
   Stream.Free;
 end;
end;


 
Rouse_ ©   (2006-01-24 22:41) [2]

Вот, писал комуто демку. Режет картинки при загрузке...

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, OleCtrls, SHDocVw, IdBaseComponent, IdComponent,
 IdTCPConnection, IdTCPClient, IdHTTP, mshtml, ActiveX;

type
 TForm1 = class(TForm)
   IdHTTP1: TIdHTTP;
   WebBrowser1: TWebBrowser;
   WebBrowser2: TWebBrowser;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
 StartImg = "<img src="";
 EndImg = ">";
 LengthStart = Length(StartImg);
 LengthEnd = Length(EndImg);
 LengthSum = LengthStart + LengthEnd;
var
 InHTML, OutHTML, ImageLink: String;
 Position: Cardinal;
 Document: IHtmlDocument2;
 V: Variant;
begin
 // Загружаем оригинальную страницу (для сравнения)
 WebBrowser1.Navigate("http://www.yandex.ru");
 // Получаем код этой страницы руками
 InHTML := IdHTTP1.Get("http://www.yandex.ru");
 // Начинаем парсить
 while Length(InHTML) > 0 do
 begin
   // Ищем начало рисунка
   Position := Pos(StartImg, InHTML);
   // Если нашли
   if Position > 0 then
   begin
     // Все что до него - помещаем в выходной буффер
     OutHTML := OutHTML + Copy(InHTML, 1, Position - 1);
     // Удаляем ненужное из входного буффера
     Delete(InHTML, 1, Position - 1);
     // Ищем конец картинки
     Position := Pos(EndImg, InHTML);
     // Запоминаем картинку
     ImageLink := Copy(InHTML, LengthStart, Position - LengthSum);
     // Если эта картинка грузится не с узла img.yandex.ru - добавялем ее в выходной буффер
     if Pos("img.yandex.ru", ImageLink) = 0 then
       OutHTML := OutHTML + Copy(InHTML, 1, Position + LengthEnd - 1);
     // Удаляем из входного
     Delete(InHTML, 1, Position + LengthEnd - 1);
   end
   else
   begin
     // Больше картинок нет - все что осталось перекидываем в выходной буффер
     OutHTML := OutHTML + InHTML;
     InHTML := "";
   end;
 end;
 // Закидываем пропарсенный текст в бразер
 WebBrowser2.Navigate("about:blank");
 while WebBrowser2.Document = nil do
   Application.ProcessMessages;
 Document := WebBrowser2.Document as IHtmlDocument2;
 V := VarArrayCreate([0, 0], varVariant);
 V[0] := OutHTML;
 Document.Writeln(PSafeArray(TVarData(v).VArray));
end;

end.


 
буратино   (2006-01-26 06:33) [3]

мужики, спасибо огромное обоим! выручили!



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
2-1139691033
Norfolk
2006-02-11 23:50
2006.02.26
Собственный тип данных в отдельный модуль


15-1139037280
vidiv
2006-02-04 10:14
2006.02.26
RSS - что это за зверь?


1-1138092905
son_g
2006-01-24 11:55
2006.02.26
По поводу одновременного доступа к файлам


4-1134063345
lom
2005-12-08 20:35
2006.02.26
FindFirst и.т.д.


4-1133975347
Volf_555
2005-12-07 20:09
2006.02.26
Как генерировать разный GUID?