![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день
есть код простейшего браузера Код:
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
|
||||
|
||||
|
Код:
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
|
|||
|
|||
|
что то компилятор не ест
Application.ProcessMessages, именно ProcessMessages - ошибка "необъявленный идентификатор"- может еще какой модуль надо подключить кроме Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw, ComCtrls, Clipbrd, MSHTML; |
|
#4
|
|||
|
|||
|
сделал так
Код:
procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject); begin Clipboard.AsText:=(WebBrowser1.Document as IHTMLDocument2).body.outerText; end; и таблицы тоже не сохраняет - а оне желательны, во всяком случае для экшпиримента может кто еще чего подскажет? |
|
#5
|
||||
|
||||
|
вот нашел еще в 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);в Microsoft Office Word 2003 вставляет все. |
|
#6
|
|||
|
|||
|
вообще нужно:
- после окончания загрузки кода ХТМЛ-страницы - после отработки JavaScript - после отображения страницы в окне браузера (раз отображено - значит все действия со страницей закончены) скопировать текст страницы в буфер или ПЕРЕМ(что лучше) - с сохранением всех УРЛ (ссылок) - с сохранением структуры текста (таблицы) - без сохранения картинок - удалить все ненужные теги и их содержимое (стили всякие дИВы и прчую мутотень, которой так много в нынешних сайтах) отобразить в МЕМО или другом типе окна (только для визуального контроля) страницу в уже упрощенном виде никто ничего похожего не делал? |