Главная страница
    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.47 MB
Время: 0.034 c
14-1128188730
Adil
2005-10-01 21:45
2005.10.23
Windows XP Home Edition User Interface


14-1128339203
Bryke
2005-10-03 15:33
2005.10.23
Остаться в живых


1-1128055083
DrAndrey
2005-09-30 08:38
2005.10.23
Как сделать TComboBox плоским, Ctl3D:= True - не помогает?


1-1128015457
Volf_555
2005-09-29 21:37
2005.10.23
Как в RUN-TIME добавить новую вкладку в TPageControl?


3-1126287172
Кабан
2005-09-09 21:32
2005.10.23
DBLocupLookupComboBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский