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

Вниз

Как получить картинку с браузера?   Найти похожие ветки 

 
Ш-К   (2002-07-03 17:11) [0]

Как получить изображение с браузера в битмап? Т.е. мне надо "получить" канву открытого документа и скопировать её в битмап даже если она перекрывается чужими окнами.


 
Fiend ©   (2002-07-03 17:37) [1]

Ну наверна по хэндлу окна получить котекст устройства и скопировать куда то к себе


 
Ш-К   (2002-07-04 01:07) [2]

У меня есть файл *.html и мне надо просто отобразить его содержимое в Image, уменьшинной копией.

Я пытаюсь делать через загрузку в веббраузер. И как мне " по хэндлу окна получить котекст устройства"?
Такой код не работает:

DC:= GetDC(WebBrowser1.HWND);


 
Fiend ©   (2002-07-04 10:01) [3]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, OleCtrls, SHDocVw_TLB;

type
TForm1 = class(TForm)
WebBrowser: TWebBrowser_V1;
Image: TImage;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.BitBtn1Click(Sender: TObject);
var HWWW: HDC;
begin
HWWW:= GetDC(WebBrowser.Handle);
BitBlt(Image.Canvas.Handle, 0,0,Image.width,Image.Height,
HWWW,0,0, SRCCOPY);
Image.refresh;
ReleaseDC(WebBrowser.Handle, HWWW);

end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
WebBrowser.Navigate(" http://localhost/cr/");
end;

end.


 
Ш-К   (2002-07-04 15:41) [4]

WebBrowser.Handle - дескриптор TOleConteiner или, если угодно TWinControl. Через него отображается всё, что на нём "лежит", включая другие окна.
А мне надо только файл отобразить, желательно весь, а не то как он выглядит в TOleConteiner.

Я просто видел программы которые показывают документы полностью в расте.


 
int64 ©   (2002-07-04 16:09) [5]

Документ можно привести к интерфейсу IViewObject.
Вот для твоей задачи:

procedure TForm1.Button1Click(Sender: TObject);
var WB1: TWebBrowser;
r: TRect;
begin
r:=Rect(10,10,200,400);
WB := TWebBrowser.Create(nil);
TControl(WB).Parent := Panel1;//где нет скроллбаров
WB.Left:= 4000; WB.Top:= 4000; //это чтобы спрятать
WB.Height:= 500; //поэксперементируй с размерами
WB.Navigate("c:\temp\1.htm");
while WB.ReadyState<>READYSTATE_COMPLETE do
Forms.Application.ProcessMessages;

(WB.Document as IViewObject).Draw(DVASPECT_CONTENT,
1, nil, nil, Self.Handle,
Self.Canvas.Handle, @r, nil, nil, 0);
WB.Free;
end;


Дерзай.


 
Ш-К   (2002-07-04 17:23) [6]

АГРОМНЫЙ СПАСИБ!!! :)))))))))))))



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
3-47132
AlexNord
2002-06-20 05:13
2002.07.15
IBQuery и фильтрация записей


1-47332
easy
2002-06-27 09:18
2002.07.15
Cls


3-47231
Андрусь
2002-06-18 11:27
2002.07.15
Регулировка закачки данных


1-47415
Солер
2002-07-02 21:51
2002.07.15
Как программе запретить выполнять действие


1-47254
Александр
2002-06-29 11:48
2002.07.15
Ошибка при установке DPK