Ізвращенства з WebBrowser
У мене на формі є WebBrowser1. У ньому завантажена web сторінка, в якій всього одна картинка і більше нічого. Потрібно цю картинку завантажити в Image1, а в Label1 кинути її ім'я. Як би мені це замутити. Закиньте соурс.
Ну, чого не хто не знає. (
краще отримай Сорс сторінки (inHTTP.get (url): string), і в ньому знайди посилання на картинку, і тим же inHTTP в потік, а потік в Image
Що є парсити?
// Чим відрізняється Мемо від ЛістБокса
Парсити, значить якщо шлях відносить. то перетворити його в абсолютний.
Ну, і як це зробити?
Подивися в хелпе Insert - і все стане ясно.
Хтось (не пам'ятаю хто) пропонував робити таким чином (я просто повторю що він написав):
var
Doc: Variant;
src: String;
begin
Doc: = WB.DefaultInterface.Document;
src: = Doc.images.item (0, "") .src;
end;
WB.DefaultInterface.Document - це що?
WebBrowser.DefaultInterface.Document - це ніби оле об'єкт.
Зи - в WebBrowse мусить бути завантажена дана веб сторінка
Почитай свій перший пости останній.
Ти ж сам пишеш що на формі є TWebBrowser, і що в нього завантажена сторінка, а в останньому питаєш чи повинен бути TWebBrowser і чи в нього повинна бути завантажена сторінка.
А щодо того щоб завантажити картинку з темпорарей - не знаю. Завантаж її заново з інету.
Правда дивлячись для чого ти хочеш використовувати то про що питаєш. А то є такі сайти, які при кожному завантаженні картинки змінюють її. Ну вобщем ти зрозумів про що це я.
Є ще варіант копіювання вмісту TWebBrowser в TImage.
Типу отримуємо в TImage копію того що видем в TWebbrowser "е.
Ось знайшов шматок коду що я використовував в одній зі своїх прог.
procedure TForm1.getbrimage;
var
ViewObject: IViewObject;
begin
try
Webbrowser1.Document.QueryInterface (IViewObject, ViewObject);
try
ViewObject.Draw (DVASPECT_CONTENT, 1, nil, nil, Self.Handle,
image1.Canvas.Handle, nil, nil, nil, 0);
finally
ViewObject._Release;
end;
except
end;
image1.Refresh;
end;
> WebBrowse мусить бути завантажена дана веб сторінка
да
> Можу я її завантажити з куків
в куках зберігається лише текстова інфа.
Спасибі, але млинець вантажити сново фотку це дико і довго (якщо їх штук 20).
Як я знаючи, в TIF (Temporary Internet Files) валяються все об'єкти завантажені інет і картинки теж. Так от якщо картинка уще завантажена чи можу я звернутися до неї в Tif, а не на вузол.
Чи можна вантажити в WB не саму сторінку, а лише її хтмл код.
> Дякую, але млинець вантажити сново фотку це дико і довго (якщо
> Їх штук 20).
> Краще отримай Сорс сторінки (inHTTP.get (url): string), і в
> Ньому знайди посилання на картинку, і тим же inHTTP в потік, а
> Потік в Image
> Як я знаючи, в TIF (Temporary Internet Files) валяються все
> Об'єкти завантажені інет і картинки теж. Так от якщо картинка
> Уще завантажена чи можу я звернутися до неї в Tif, а не на
> Вузол.
> Чи можна вантажити в WB не саму сторінку, а лише її хтмл код.
Справа в тому, що ie називає все такими іменами, що тобі й не снилося. = ((((
За допомогою IHTMLImgElement.Get_href отримати урл картинки - OK
За допомогою GetUrlCacheEntryInfo вивудити ім'я файлу в кеші
А ось як це мутить не маю уявлення!
Не розумію, що це за inHTTP.
> Checist [root] (14.08.03 4:40) [16]
> Як я знаючи, в TIF (Temporary Internet Files) валяються все
> Об'єкти завантажені інет і картинки теж. Так от якщо картинка
> Уще завантажена чи можу я звернутися до неї в Tif, а не на
> Вузол.
> Чи можна вантажити в WB не саму сторінку, а лише її хтмл код.
Просто відключи тоді завантаження графіки і грузи. не будеш витрачати трафік двічі на одну і ту ж сторінку. Не знаю як з TWebBrowser, але постав собі TEmbeddedWB, там відключення графіки робиться дуже просто.
А взагалі я б в твоєму випадку не користувався б TWebBrowser, а скачав би спочатку html, розібрав його, знайшов URL картинки, якщо він відносний, то перетворив би його в абсолютний і далі скачав би саму картинку. І для цього використовував би TNMHTTP або його INDYйскій "аналог" TidHTTP.
Пам'ять: 0.76 MB
Час: 0.051 c