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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.10.2011, 21:51
Pcrepair
 
Сообщения: n/a
По умолчанию Ctrl+A и Ctrl+C в компоненте TWebBrowser

Добрый день
есть код простейшего браузера
Код:
procedure TForm1.Button1Click(Sender: TObject);
  var
  URL, Flags, TargetFrameName, PostData, Headers: Olevariant;
begin
  URL := Edit1.Text;
  Flags := 0;
  TargetFrameName := 0;
  Postdata := 0;
  Headers := 0;
  EmptyParam;
  WebBrowser1.Navigate2(URL, Flags, TargetFrameName, PostData, Headers);
end;
initialization
  // prevent floating point errors
  Set8087CW($133F);
end.
программа позволяет загрузить и отобразить ХТМЛ-страницу

Вопрос:
Как организовать выделение и копирование содержимого отображенной в браузере ХТМЛ-страницы в буфер обмена по событию "загрузка закончена", то есть сделать как бы Ctrl+A и Ctrl+C
Код:
procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
  ????????????????????????
end;
Нет ли у кого похожего кода, чтоб на пустом месте не гадать?
Заранее спасибо
Ответить с цитированием
  #2  
Старый 09.10.2011, 08:23
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
uses
  Clipbrd,
  MSHTML,

begin
  WebBrowser1.Navigate('http://www.delphisources.ru/forum/showthread.php?p=89657#post89657');
  while WebBrowser1.ReadyState<READYSTATE_COMPLETE do Application.ProcessMessages;
  Clipboard.AsText:=(WebBrowser1.Document as IHTMLDocument2).body.outerText;
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 09.10.2011, 12:20
Pcrepair
 
Сообщения: n/a
По умолчанию

что то компилятор не ест
Application.ProcessMessages, именно ProcessMessages - ошибка "необъявленный идентификатор"- может еще какой модуль надо подключить кроме
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, SHDocVw, ComCtrls, Clipbrd, MSHTML;
Ответить с цитированием
  #4  
Старый 09.10.2011, 12:32
Pcrepair
 
Сообщения: n/a
По умолчанию

сделал так
Код:
procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject);
begin
  Clipboard.AsText:=(WebBrowser1.Document as IHTMLDocument2).body.outerText;
end;
все хорошо, кроме одного - не сохраняет УРЛ в тексте, а оне нужны
и таблицы тоже не сохраняет - а оне желательны, во всяком случае для экшпиримента
может кто еще чего подскажет?
Ответить с цитированием
  #5  
Старый 09.10.2011, 13:09
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

вот нашел еще в Delphi FAQ - Часто задаваемые вопросы:
Код:
uses
  ActiveX,

begin
  WebBrowser1.Navigate('http://www.delphisources.ru/forum/showthread.php?p=89657#post89657');
  while WebBrowser1.ReadyState<READYSTATE_COMPLETE do Application.ProcessMessages;
  WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT);
  WebBrowser1.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT);
  ShowMessage('copied');
end;

initialization
  OleInitialize(nil);
оригинал: http://www.delphisources.ru/pages/fa...ebbrowser.html
в Microsoft Office Word 2003 вставляет все.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #6  
Старый 09.10.2011, 14:02
Pcrepair
 
Сообщения: n/a
По умолчанию

вообще нужно:
- после окончания загрузки кода ХТМЛ-страницы
- после отработки JavaScript
- после отображения страницы в окне браузера (раз отображено - значит все действия со страницей закончены)
скопировать текст страницы в буфер или ПЕРЕМ(что лучше)
- с сохранением всех УРЛ (ссылок)
- с сохранением структуры текста (таблицы)
- без сохранения картинок
- удалить все ненужные теги и их содержимое (стили всякие дИВы и прчую мутотень, которой так много в нынешних сайтах)
отобразить в МЕМО или другом типе окна (только для визуального контроля) страницу в уже упрощенном виде
никто ничего похожего не делал?
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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