Текущий архив: 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.044 c