:: MVP ::
|
|
:: RSS ::
|
|
|
Как загрузить строковые данные в WebBrowser не прибегая к открытию файла?
// Способ первый
uses
ActiveX, MSHTML;
procedure WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode: string);
var
sl: TStringList;
ms: TMemoryStream;
begin
WebBrowser.Navigate('about:blank');
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;
if Assigned(WebBrowser.Document) then
begin
sl := TStringList.Create;
try
ms := TMemoryStream.Create;
try
sl.Text := HTMLCode;
sl.SaveToStream(ms);
ms.Seek(0, 0);
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
finally
ms.Free;
end;
finally
sl.Free;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
WB_LoadHTML(WebBrowser1, 'Ваша строка');
end;
// Способ второй
uses
MSHTML, ActiveX;
procedure TextToWebBrowser(WB: TWebBrowser; Text: string);
var
Document: IHTMLDocument2;
v: OleVariant;
begin
if WB.Document = nil then
WB.Navigate('about:blank');
while WB.Document = nil do
Application.ProcessMessages;
Document := WB.Document as IHtmlDocument2;
v := VarArrayCreate([0, 0], varVariant);
v[0] := Text;
Document.Write(PSafeArray(TVarData(v).VArray));
Document.Close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TextToWebBrowser(WebBrowser1, 'Ваша строка');
end;
|
Как сохранить веб страничку в BitMap?
uses
ActiveX, MSHTML;
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://decoding.dax.ru');
end;
procedure WebBrowserPrintScreen(Browser: TWebBrowser; Path: string);
var
bm: TBitmap;
ViewObject: IViewObject;
SRect: TRect;
begin
if Browser.Document <> nil then
try
Browser.Document.QueryInterface(IViewObject, ViewObject);
if ViewObject <> nil then
try
bm := TBitmap.Create;
bm.Width := Browser.Width;
bm.Height := Browser.Height;
SRect := Rect(0, 0, bm.Width, bm.Height);
ViewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Browser.Handle,
bm.Canvas.Handle, @SRect, nil, nil, 0);
bm.SaveToFile(Path);
finally
bm.Free;
ViewObject._Release;
end;
except
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowserPrintScreen(WebBrowser1, 'c:\Screen.bmp');
end;
|
Как получить все линки в TWebBrowser?
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://decoding.dax.ru');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to Webbrowser1.OleObject.Document.links.Length-1 do
Memo1.Lines.Add(WebBrowser1.OleObject.Document.Links.Item(i));
end;
|
Как скрыть/показать скроллбары в TWebBrowser?
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://decoding.dax.ru');
end;
// Скрыть скроллбары
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.OleObject.Document.Body.Style.OverflowX := 'hidden';
WebBrowser1.OleObject.Document.Body.Style.OverflowY := 'hidden';
end;
// Показать скроллбары
procedure TForm1.Button2Click(Sender: TObject);
begin
WebBrowser1.OleObject.Document.Body.Style.OverflowX := '';
WebBrowser1.OleObject.Document.Body.Style.OverflowY := '';
end;
|
Как заменить все рисунки в TWebBrowser?
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://decoding.dax.ru');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Word;
begin
for i := 0 to WebBrowser1.OleObject.Document.Images.Length-1 do
WebBrowser1.OleObject.Document.Images.Item(i).Src := 'C:\MyImage.gif';
end;
|
Как использовать протокол about: в TWebBrowser?
// Протокол "about:" позволяет загружать в браузер HTML строку.
procedure LoadHTMLString( WebBrowser: TWebBrowser; sHTML: string );
var
Flags, TargetFrameName, PostData, Headers: OleVariant;
begin
WebBrowser.Navigate('about:' + sHTML, Flags, TargetFrameName, PostData, Headers);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
LoadHTMLString(WebBrowser1, '<HTML><BODY><CENTER><H2>DeCoding</H2></CENTER></BODY></HTML>');
end;
|
Как получить текст HTML документа из TWebBrowser?
// Способ первый
uses
MSHTML;
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://decoding.dax.ru');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Document: IHTMLDocument2;
begin
Document := WebBrowser1.Document as IHtmlDocument2;
if Document <> nil then
Memo1.Text := (Document.all.Item(NULL, 0) as IHTMLElement).OuterHTML;
end;
// Способ второй
uses
ActiveX, MSHTML;
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://decoding.dax.ru');
end;
function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean;
var
ps: IPersistStreamInit;
ss: TStringStream;
sa: IStream;
s: string;
begin
ps := WebBrowser.Document as IPersistStreamInit;
s := '';
ss := TStringStream.Create(s);
try
sa := TStreamAdapter.Create(ss, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
if Result then
ACode.Add(ss.Datastring);
finally
ss.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
WB_GetHTMLCode(WebBrowser1, Memo1.Lines);
end;
// Способ третий
uses
MSHTML;
procedure TForm1.Button1Click(Sender: TObject);
var
Doc: IHTMLDocument2;
begin
WebBrowser1.Navigate('http://decoding.dax.ru');
while WebBrowser1.ReadyState < READYSTATE_COMPLETE do
Application.ProcessMessages;
Doc := WebBrowser1.Document as IHTMLDocument2;
Memo1.Text := Doc.body.innerHTML;
end;
|
Как получить текст HTML документа из TWebBrowser без тегов?
uses
MSHTML, ActiveX;
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://decoding.dax.ru');
end;
procedure GetHtmlCode(WebBrowser: TWebBrowser; FileName: string);
var
htmlDoc: IHtmlDocument2;
PersistFile: IPersistFile;
begin
htmlDoc := WebBrowser.document as IHtmlDocument2;
PersistFile := HTMLDoc as IPersistFile;
PersistFile.Save(StringToOleStr(FileName), True);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetHtmlCode(WebBrowser1, 'C:\HTMLDoc.txt');
end;
|
Как поменять цвет скроллбаров в TWebBrowser?
procedure TForm1.Button1Click(Sender: TObject);
begin
with WebBrowser1 do
begin
OleObject.document.body.Style.scrollbarArrowColor := '#0099FF';
OleObject.document.body.Style.scrollbar3DLIGHTCOLOR := '#FFFFFF';
OleObject.document.body.Style.scrollbarDarkShadowColor := '#0099FF';
OleObject.document.body.Style.scrollbarFaceColor := '#99CCFF';
OleObject.document.body.Style.scrollbarHighlightColor := '#0099FF';
OleObject.Document.body.Style.scrollbarShadowColor := '#0099FF';
OleObject.Document.body.Style.scrollbarTrackColor := '#FFFFFF';
OleObject.Document.body.Style.scrollbarBaseColor := '#FFFFFF';
end;
end;
|
При использовании материала - ссылка на сайт обязательна
|
|