Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.23;
Скачать: CL | DM;

Вниз

Поиск строки в поисковом сайте через Internet Explorer   Найти похожие ветки 

 
mefodiy   (2005-09-27 10:38) [0]

При создании формы открываю нужный мне интернет сайт

var IEApp: OleVariant;
    WinHanlde: HWnd;
...............................
procedure OpenIE(aURL: string);
 var WinHanlde: HWnd;
begin
 if (VarIsEmpty(IEApp)) then
   begin
     IEApp         := CreateOleObject("InternetExplorer.Application");
     IEApp.Visible := True;
     IEApp.Navigate(aURL);
   end
 else
   begin
     WinHanlde := FindWindow("IEFrame", nil);
     if (0 <> WinHanlde) then
       begin
         IEApp.Navigate(aURL);
         SetForegroundWindow(WinHanlde);
       end
     else
       ShowMessage("Can""t open IEApp !");
   end;
end;
..........................................
OpenIE("http://www.yandex.ru");
..........................................
Нужно, чтобы по нажатию кнопки в моей форме на поисковом сайте yandex.ru начался поиск строки из моего TEdit.
Возможно ли такое и, если да, то как это сделать?
Спасибо.


 
dmitry501 ©   (2005-09-27 10:52) [1]

Угу, вызывай вот так
OpenIE("http://www.yandex.ru/yandsearch?rpt=rad&text="+Edit1.text+");


 
mefodiy   (2005-09-27 13:10) [2]

Все работает, только нормальный в Edit1 текст в поисковике превращается в аброкадабру.
Не помогает и преобразование

OpenIE("http://www.yandex.ru/yandsearch?rpt=rad&text="+StringToWideString(Edit1.Text,1251))

где функция имеет вид

function StringToWideString(const s: AnsiString; codePage: Word): WideString;
 var l: integer;
begin
 if s = "" then
   Result := ""
 else
   begin
     l := MultiByteToWideChar(codePage, MB_PRECOMPOSED, PChar(@s[1]), -1, nil, 0);
     SetLength(Result, l - 1);
     if l > 1 then
       MultiByteToWideChar(CodePage, MB_PRECOMPOSED, PChar(@s[1]),
                           -1, PWideChar(@Result[1]), l - 1);
   end;
end;


 
dmitry501 ©   (2005-09-28 05:37) [3]

Попробуй использовать функцию HTMLEncode()
которая преобразует русские буквы и служебные символы в кодировку, используемую в HTML


 
mefodiy   (2005-09-28 09:24) [4]

HTMLEncode() не помогла


 
dmitry501 ©   (2005-09-28 09:26) [5]

А подробнее? Чему равна aURL? Какая кодировка стоит у IE по умолчанию?


 
mefodiy   (2005-09-28 10:31) [6]

Что имеешь в виду под aURL?
Кодировку IE насколько я понимаю смотрим в View-->Ecoding.
Там стоит Cirillic(WIndows).


 
dmitry501 ©   (2005-09-28 10:40) [7]

mefodiy   (28.09.05 10:31) [6]
>Что имеешь в виду под aURL?
Переменная из [0]
и еще, стоит ли параметр "отправлять url как utf-8"?


 
mefodiy   (2005-09-28 11:27) [8]

>Переменная из [0] Опять не дошло, поподробнее, пожалйста
>и еще, стоит ли параметр "отправлять url как utf-8"? да стоит


 
dmitry501 ©   (2005-09-28 11:39) [9]

mefodiy   (28.09.05 11:27) [8]
прочти свой самый первый вопрос, и увидишь переменную aURL, которыя передается в процедуру OpenIE. На ней поставь брекпоинт и посмотри чему она равна!


 
mefodiy   (2005-09-28 12:12) [10]

Так ты же мне его сам написал

"http://www.yandex.ru/yandsearch?rpt=rad&text="+Edit1.text

Кстати, если даже вместо Edit1.text написать в кириллице любое слово (в теле программы), то на брекпоинте все номально читается. Абракадабра получается при передаче URL в IE.


 
mefodiy   (2005-09-28 14:53) [11]

Проблема решилась заменой

 IEApp.Navigate(aURL);

на

 IEApp.Navigate(StringToWideString(aURL,1251));

т.е. преобразование в юникод надо было делать не при вызове функции

OpenIE("http://www.yandex.ru/yandsearch?rpt=rad&text="+Edit1.Text)

а в самом теле функции.



Страницы: 1 вся ветка

Текущий архив: 2005.10.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
8-1117113862
Ботвин Дмитрий
2005-05-26 17:24
2005.10.23
Выпуклость рисунка


14-1127994870
ZeroDivide
2005-09-29 15:54
2005.10.23
Народ, кто программировал цифровушки от Olympus?


1-1128076929
Lera
2005-09-30 14:42
2005.10.23
Центрирование в StringGrid


14-1127891653
__DATA__
2005-09-28 11:14
2005.10.23
Могут ли несколько приложений висеть на одном и том же порте?


2-1127369002
alexm
2005-09-22 10:03
2005.10.23
как назначить одну процедуру многим компонентам