Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2009, 06:06   #1
ClausXXX
Новичок
Джуниор
 
Регистрация: 23.10.2009
Сообщений: 1
По умолчанию Перевод с Delphi на C++ Builder

Здравствуйте! Я делаю программу, в которой реализован крнтекстный поиск по html статьям. На форме есть Компоненты WebBrowser, Edit и ListBox (со списком найденных статей). Поиск самих статей сделал, теперь необходимо найти и выделить текст в браузере. Мне удалось отыскать несколько вариантов этого кода для Delphi, но я никак не могу перевести его на C++. Может быть у кого-нибудь есть мысли по этому поводу?[

Вот код:

I Вариант:

Код:
{....} 

private 
  procedure SearchAndHighlightText(aText: string); 
     
{....} 

uses mshtml; 

{ .... } 


procedure TForm1.SearchAndHighlightText(aText: string); 
var 
  tr: IHTMLTxtRange; //TextRange Object 
begin 
  if not WebBrowser1.Busy then 
  begin 
    tr := ((WebBrowser1.Document as IHTMLDocument2).body as IHTMLBodyElement).createTextRange; 
    //Get a body with IHTMLDocument2 Interface and then a TextRang obj. with IHTMLBodyElement Intf. 

    while tr.findText(aText, 1, 0) do //while we have result 
    begin 
      tr.pasteHTML('<span style="background-color: Lime; font-weight: bolder;">' + 
        tr.htmlText + '</span>'); 
      //Set the highlight, now background color will be Lime 
      tr.scrollIntoView(True); 
      //When IE find a match, we ask to scroll the window... you dont need this... 
    end; 
  end; 
end; 

// Example: 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
  SearchAndHighlightText('delphi'); 
end;
------------------------------------------------------

II Вариант:

Код:
 procedure TForm1.TextHight(Text:string);
var
i:integer;
Doc, T:Variant;
begin
Doc:=Web.Document;
T:= Doc.body.createTextRange;
i:=0;
if T.FindText(Text)=false then
    begin
    ShowMessage('Извините,здесь мы ничего не нашли);

    exit;
    end;
While Text > '' do
  begin
    T.FindText(Text);
    T.execCommand('BackColor','','yellow');
    T.execCommand('ForeColor','','red');
    T.execCommand('Bold');
    T.ScrollInToView;
    T.collapse(false);
    i:=i+1;
    if T.FindText(Text)=false then
      begin
        ShowMessage(' найдено: '+IntToStr(i)+' упоминаний');
        exit;
      end;
  end;
end;
зависимость uses mhtml

-----------------------------------------------------------
Замечание модератора: Используйте тег [CODE]

Последний раз редактировалось ClausXXX; 24.10.2009 в 14:51.
ClausXXX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод Delphi на C++ Игорь777 Помощь студентам 2 01.05.2009 16:28
Перевод из C в Delphi Пaвeл Общие вопросы C/C++ 2 30.04.2009 22:43
БД в Builder- перевод из Delphi kisa_misa C++ Builder 4 26.01.2009 06:04
Перевод таблицы из C++Builder в Access Rain9 Общие вопросы C/C++ 0 06.01.2009 20:23
Перевод исходников из Delphi в C++ Bond Общие вопросы C/C++ 4 23.02.2008 10:31