Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TWebbrowser - переход к якорю, Навигация и выделение объектов в HTLM 
:(
    Опции темы
GrigoriyFomin
Дата 16.11.2010, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добрый день. Не дайте помереть, люди добрые. Для меня работа с объектами TWebBrowser темна, как лес. Сколько искал, найти не мог готового решения.
По порядку:
1. Как перейти на закладку( якорь) в открытом документе HTML? Есть название и индекс закладки. (moveToElementText, scrollIntoView - вроде как это, но как использовать - не знаю :-(((
2. Как подсветить якорь или ссылку (выделить текст) ,имея ее в twebbrowser (OleObject.document.anchors и links)
3. Как узнать, что при редактировании документа в  WebBrowser пользователь внес изменения? Пока отслеживаю по возможности команды UnDo, но как-то некрасиво, имхо.

Заранее благодарю и прошу сильно не пинать, ну не понимаю я майкрософстских объектах ,всю жизнь с VCL провел smile
PM MAIL   Вверх
GrigoriyFomin
Дата 7.12.2010, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Докумекал сам, вот что вышло (суть - в хтмл документе вставляются для интересующего текста 2 якоря - в начале текста и в конце. Нужно выделить текст вместе с якорями). 
Код


procedure Tmhteditform.lbxAnchorsClick(Sender: TObject);
var
  Range, rangeb, rangee: IHTMLTxtRange;
  anchorb, anchore:      IHTMLElement;
  i, anchorid:           integer;
begin
  if lbxAnchors.ItemIndex < 0 then exit;
  anchorid := strtoint(copy(lbxAnchors.items[lbxAnchors.ItemIndex], 3, length(lbxAnchors.items[lbxAnchors.ItemIndex]) - 2));
  for i := 0 to mhteditwb.OleObject.document.anchors.length - 1 do
  begin
    if mhteditwb.OleObject.document.anchors.Item(i).Name = ('bm' + inttostr(anchorid)) then anchorb := mhteditwb.Doc2.anchors.Item(i, '') as IHTMLElement;
    if mhteditwb.OleObject.document.anchors.Item(i).Name = ('_bm' + inttostr(anchorid)) then anchore := mhteditwb.Doc2.anchors.Item(i, '') as IHTMLElement;
  end;
  if (anchorb = nil) or (anchore = nil) then exit;
  rangeb := (mhteditwb.Doc2.selection.createRange) as IHTMLTxtRange;
  rangee := (mhteditwb.Doc2.selection.createRange) as IHTMLTxtRange;
  rangeb.moveToElementText(anchorb);
//  rangeb.movestart('character',-1);
  rangeb.select;
  rangee.moveToElementText(anchore);
//  rangee.moveend('character',1); 
  rangee.select;
  Range := (mhteditwb.Doc2.selection.createRange) as IHTMLTxtRange;
  Range.setEndPoint('StartToStart', rangeb);
  Range.setEndPoint('EndToEnd', rangee);
  Range.scrollIntoView(true);
  Range.select;
  sbMHTEdit.SimpleText:=Range.htmlText;
end;



Как мне выделить текст вместе  с якорями?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

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

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


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

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

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


 




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


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

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