Главная страница
    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.45 MB
Время: 0.016 c
14-47779
mvg_first
2002-06-10 11:25
2002.07.15
Какие книги необходимо прочитать в сфере IT (программирование)


3-47121
Molodoy_Od
2002-06-15 21:45
2002.07.15
Сводные таблицы в InterBase


6-47626
ice
2002-04-28 12:07
2002.07.15
Чат


4-47891
anod
2002-05-13 23:20
2002.07.15
Чтение из реестра


1-47539
KvORubin
2002-06-27 20:19
2002.07.15
RichEdit - Нужно задать размер Width равный первой линии.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский