Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2012, 14:17   #1
Nikk[UA]
Пользователь
 
Регистрация: 24.01.2011
Сообщений: 41
По умолчанию HTML из Webbrowser в Memo

Как открыть HTML код в memo исходя из текущей страницы Webbrowser?

Я нашел код, но он не работает так как тип IPersistStreamInit не находит!


Цитата:
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;


Подскажите что делать, или дайте какой то другой код
Nikk[UA] вне форума Ответить с цитированием
Старый 12.05.2012, 14:23   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
uses ActiveX
надо.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.05.2012, 15:20   #3
Nikk[UA]
Пользователь
 
Регистрация: 24.01.2011
Сообщений: 41
По умолчанию

Теперь ошибка на этой строке

Result := Succeeded(ps.Save(sa, True));

Дебагер пишет что несовместимость типов Integer и Boolean. Как перевести?

И у Мемо нету Add, а есть только Line.Add
Nikk[UA] вне форума Ответить с цитированием
Старый 12.05.2012, 15:59   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я не знаю где вы вытянули этот код...

Код:
function SaveHTML(Strings:TStrings;
 WB: TWebBrowser):boolean;
var
 PersistStream: IPersistStreamInit;
 MS: TMemoryStream;
 Stream: IStream;
 SaveResult: HRESULT; 
begin
 PersistStream := WB.Document as IPersistStreamInit;
 MS := TTMemoryStream.Create;
 Result:=false;
 try
  Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
  SaveResult := PersistStream.Save(Stream, True);
  if FAILED(SaveResult) then exit;
  Result:=true;
  MS.position:=0;
  Strings.LoadFromStream(MS);
 finally 
  MS.Free;
 end; 
end;
примерно так.
применять так
Код:
SaveHTML(Memo1.Lines,WebBrowser1)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.05.2012, 16:26   #5
Nikk[UA]
Пользователь
 
Регистрация: 24.01.2011
Сообщений: 41
По умолчанию

Цитата:
Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
Пишет

Undeclared Identifier: 'FileStream'
Nikk[UA] вне форума Ответить с цитированием
Старый 12.05.2012, 16:38   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

исправить на MS.
явно же видно...
Код:
function SaveHTML(Strings:TStrings;
 WB: TWebBrowser):boolean;
var
 PersistStream: IPersistStreamInit;
 MS: TMemoryStream;
 Stream: IStream;
 SaveResult: HRESULT; 
begin
 PersistStream := WB.Document as IPersistStreamInit;
 MS := TTMemoryStream.Create;
 Result:=false;
 try
  Stream := TStreamAdapter.Create(MS, soReference) as IStream;
  SaveResult := PersistStream.Save(Stream, True);
  if FAILED(SaveResult) then exit;
  Result:=true;
  MS.position:=0;
  Strings.LoadFromStream(MS);
 finally 
  MS.Free;
 end; 
end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 12.05.2012 в 17:04.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.05.2012, 16:42   #7
Nikk[UA]
Пользователь
 
Регистрация: 24.01.2011
Сообщений: 41
По умолчанию

Огромное спасибо!!! Всё работает!
Nikk[UA] вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
html webbrowser Котеночек Общие вопросы Delphi 6 07.04.2011 03:50
в WebBrowser html T_I_T_A_N Общие вопросы Delphi 2 07.07.2010 07:28
Из Memo в WebBrowser AVer Общие вопросы Delphi 2 10.10.2008 18:55
Вместо Memo нужен компонент WebBrowser VenMaster Компоненты Delphi 6 02.06.2008 17:38