Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать чтоб в WebBrowser1 выполнился html код 
V
    Опции темы
COOLHack
  Дата 15.3.2008, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 281
Регистрация: 8.2.2008

Репутация: нет
Всего: 0



В Мемо находится html код, его нужно загрузить в Веббраузер

Я делаю так:


Код

Memo1.Lines.SaveToFile('C:\1.txt');
WebBrowser1.Navigate('C:\1.txt');


А мне нужно не сохроняя на винт, когда пишу так:

Код

WebBrowser1.Navigate(Memo1.Lines.Text);


Компилятор ошибок НЕ выдаёт, но сама программа выдаёт "Неопознанная ошибка"


Подскажите как правельно сделать чтоб в WebBrowser1 выполнился Хтмл код находящийся в Memo1, не сохроняя его на винт.


PM MAIL   Вверх
lukas
Дата 15.3.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15





--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
COOLHack
Дата 15.3.2008, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 281
Регистрация: 8.2.2008

Репутация: нет
Всего: 0



ПасиБ!

Добавлено через 6 минут и 45 секунд
Ещё вопрос, при нажатию на ссылку страничка загружается во втором окне, я это делаю так:

Код

procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
begin
ppDisp:=WebBrowser2.ControlInterface;
end;



А мне нужно чтоб при нажатии на ссылку загружалась не страница, а только хтмл код и не в веббраузер2, а в Memo2

Подскажите как это сделать
PM MAIL   Вверх
SneG0K
Дата 15.3.2008, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 1
Всего: 54



Создай отдельное окно с мемо. и туда выводи переменную,в которой у тебя должно содержаться код броузера
PM WWW Skype   Вверх
COOLHack
Дата 15.3.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 281
Регистрация: 8.2.2008

Репутация: нет
Всего: 0



Видимо ты не понял вопроса, нужно загружать в Мемо ХТМЛ код Сайта, ссылку на который я жму в веббраузере1
PM MAIL   Вверх
lukas
Дата 15.3.2008, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



http://read.excode.ru/art1609p2.html  smile 

P.S. Второй вопрос говорит о лени...  smile 


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
COOLHack
Дата 15.3.2008, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 281
Регистрация: 8.2.2008

Репутация: нет
Всего: 0



Это не то,  мне нужно немного другое... Например в WebBrowser1 загруженно 100 ссылок на разные сайты,  при нажатии на одну из них(на ссылку в WebBrowser, а не на кнопку!) в Мемо2 должен загрузится только хтмл код того сайта, ссылку на который я нажму

Это сообщение отредактировал(а) COOLHack - 15.3.2008, 18:27
PM MAIL   Вверх
lukas
Дата 15.3.2008, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



COOLHack, 

поищи на том же сайте... там все это есть... а у webbrowsera есть методы которые могут получать список ссылок... вернее интерфейсы...

Добавлено через 53 секунды
а вообще 1 тема... 1 вопрос

и эта тема должна быть в ActiveX разделе...


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Sanchezzz
  Дата 15.3.2008, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 5
Всего: 60



да пофоруму много тем насчет WB 

как добратся до элемента ссылки и кликнуть Webbrowser1.OleObject.Document.Links.Item(0)



Код


uses 
MSHTML,
UrlMon, SHDocVw, ShellAPI, WinInet, ActiveX,
ComObj, ComCtrls;

как узнать ссылки
procedure getLinks(WB: TWebbrowser; sl: TStrings);
var
  u: variant;
  v: IDispatch;
  s: string;

 procedure RecurseLinks(htmlDoc: variant);
  var
    BodyElement: Olevariant;
    ElementCo: Olevariant;
    HTMLFrames: Olevariant;
    HTMLWnd: Olevariant;
    doc: Olevariant;
    j, i: integer;
  begin
    if VarIsEmpty(htmlDoc) then
      exit;
    BodyElement := htmlDoc.body;
    if BodyElement.tagName = 'BODY' then
    begin
      ElementCo := htmlDoc.links;
      j := ElementCo.Length - 1;
      for i := 0 to j do
      begin
        u := ElementCo.item(i);
        s := u.href;
        sl.Add(s);
      end;
    end;
    HTMLFrames := htmlDoc.Frames;
    j := HTMLFrames.length - 1;
    for i := 0 to j do
    begin
      HTMLWnd := HTMLFrames.Item(i);
      try
        doc := HTMLWnd.Document;
        RecurseLinks(doc);
      except
        continue;
      end;
    end;
  end; // RecurseLinks
begin
  v := WB.document;
  sl.Clear;
  RecurseLinks(v);
end;


procedure GetDocumentSourceToStream(Document: IDispatch; Stream: TStream);
// Save a TWebbrowser Document to a Stream
var
  PersistStreamInit: IPersistStreamInit;
  StreamAdapter: IStream;
begin
  Assert(Assigned(Document));
  Stream.Size := 0;
  Stream.Position := 0;
  if Document.QueryInterface(IPersistStreamInit,
    PersistStreamInit) = S_OK then
  begin
    StreamAdapter := TStreamAdapter.Create(Stream, soReference);
    PersistStreamInit.Save(StreamAdapter, False);
    StreamAdapter := nil;
  end;
end;




function GetDocumentSourceToString(Document: IDispatch): string;
// Save a Webbrowser Document to a string
var
  Stream: TStringStream;
begin
  Result := '';
  Stream := TStringStream.Create('');
  try
    GetDocumentSourceToStream(Document, Stream);
    Result := StringReplace(Stream.Datastring, #$A#9, #$D#$A, [rfReplaceAll]);
    Result := StringReplace(Result, #$A, #$D#$A, [rfReplaceAll]);
    if Copy(Result, 1, 3) = 'яю<' then
      Result := '';
  finally
    Stream.Free;
  end;


это только малая часть из всего что есть все работает сам использовал... 
остальное думай сам... там много чего есть.





Это сообщение отредактировал(а) Sanchezzz - 15.3.2008, 20:55


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.