Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > WebBrowser и hlml


Автор: Garmahis 13.12.2005, 12:45
У меня в веббороузере отображается страничка. Мне надо програмно часть текста выделить и скопировать. Конечно можно реализовать это вывылив весь код штмл в мемо и там работать как с текстом но это геморой потому что страничка с кучей вложеных фреймов и компонентами управления. а мне бы просто взять кусок текста оттуда. Как это можно сделать?

Автор: p0s0l 13.12.2005, 14:34
Выделение:
Код

var
  doc : IHTMLDocument2;
  tr : IHTMLTxtRange;

begin
  doc := WebBrowser1.Document as IHTMLDocument2;
  tr := (doc.body as IHTMLBodyElement).createTextRange;
  tr.moveStart('character', 10); // с 10 символа
  tr.moveEnd ('character', 500); // по 500-й символ
  tr.select; // выделяем
end;

Вместо 'character' могут быть и другие параметры:
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/moveend.asp
Добавлено @ 14:38
А, погоди, тебе просто текст надо скопировать ?
Почему бы просто не сделать так:
Txt := Copy(Doc.Body.InnerText, 10, 20); ?

Автор: Garmahis 13.12.2005, 16:10
Да мне надо просто скопировать текст. Но желательно не весь а скажем со слова "Арбуз" до слова "сыр"

Автор: p0s0l 13.12.2005, 16:22
Получив текст
Код
Txt := Doc.Body.InnerText;
делай с ним что хочешь...
Код

P1 := Pos('Арбуз', Txt);
P2 := Pos('сыр', Txt);
Txt2 := Copy(Txt, P1, P2-P1);
ShowMessage(Txt2);

Добавлено @ 16:23
Т.е. это вопрос не касаемо TWebBrowser'а, а вопрос про работу со строками...

Автор: Garmahis 13.12.2005, 16:32
Всё разобрался! Большое спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)