Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.04.2008, 09:33
PashaXP PashaXP вне форума
Новичок
 
Регистрация: 05.02.2008
Сообщения: 81
Репутация: 15
Смущение Из HTML-страницы в Memo?

Есть код, который считывает HTML-код в Memo -
Код:
//--- Функция считывания html-кода в  TMemo
 function GetHTMLCode(WB: IWebbrowser2; ACode: TStrings): Boolean;
 var
  ps: IPersistStreamInit;
  s: string;
  ss: TStringStream;
  sa: IStream;
 begin
  ps := WB.document as IPersistStreamInit;
  s := '';
  ss := TStringStream.Create(s);
  try
    sa:= TStreamAdapter.Create(ss, soReference) as IStream;
    Result := Succeeded(ps.Save(sa, Bool(True)));
    if Result then ACode.Add(ss.Datastring);
  finally
    ss.Free;
  end;
 end;
procedure TForm1.Button1Click(Sender: TObject);
Var
  ShellWindow: IShellWindows;
  WB: IWebbrowser2;
  spDisp: IDispatch;
  IDoc1: IHTMLDocument2;
Begin
 for k := 0 to ShellWindow.Count do
  begin{1}
    spDisp := ShellWindow.Item(k);
    if spDisp = nil then Continue;
    {QueryInterface определяет, может ли интерьфейс использоваться объектом}
      // проверяем, а не браузер ли это 
   spDisp.QueryInterface(iWebBrowser2, WB);
    if WB <> nil then
    begin{2}
    // проверяем , а не  HTML ли это
      WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
      if iDoc1 <> nil then   // Если да дергаем html код
      begin{3}
      // связываем запущенный экземпляр Internet Explorera как браузер
        WB := ShellWindow.Item(k) as IWebbrowser2;
        begin{4}
          Form1.Memo1.Clear;
          GetHTMLCode(WB, Memo1.Lines);// Запись кода в  Memo
        end;{4}
      end;{3}
    end;{2}
  end;{1}
End. 
Пример считывания стороки этого кода -
</a>|</div>|<div class="text">|<span>Ð*то наиболее
Можно ли сделать так
</a>
</div>
<div class="text">
<span>Ð*то наиболее общий
Т.е. как либо изменить функцию GetHTMLCode, чтобы в каждой строке Memo была одна строка считанного html кода???
Ответить с цитированием
  #2  
Старый 21.04.2008, 10:09
PashaXP PashaXP вне форума
Новичок
 
Регистрация: 05.02.2008
Сообщения: 81
Репутация: 15
По умолчанию

Разобрался, для этих целей луче использовать TRichEdit... Только чтото когда в ScrollBars ssBoth или ssHorizontal горизонтальная прокрутка не появляется?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025