Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Delphi WebBrowser не работает [ENTER] (https://forum.antichat.xyz/showthread.php?t=21185)

donetsk 01.07.2006 12:01

Delphi WebBrowser не работает [ENTER]
 
Вопрос использую компонент WebBrowser -полный аналог IE.
после настройки его , модернизации и всего прочего всё отлично работает тот же ie , но в IE после нажатия кнопки Еnter на некоторых сайтах срабатывает кнопка пост , допустим на www.yandex.ru вы нажимаете Enter и у вас срабатывает кнопка найти, но в WebBrowser после нажатия на Enter такого почему-то не происходит?!
ПОЧЕМУ?КТО МОЖЕТ ПОДСКАЗАТЬ КАК ЭТУ ПРОБЛЕМУ РЕШИТЬ?

lo0 01.07.2006 12:03

Нужно фокус по дефаулту на браузер поставить.

donetsk 01.07.2006 12:53

Цитата:

Нужно фокус по дефаулту на браузер поставить.
а как это сделать?

Brun 01.07.2006 13:17

Кнопки обрабатывать нужно

donetsk 01.07.2006 13:33

ну вот на примере отработки кноки "Найти!" на сайте www.ya.ru
делаем загрузку www.ya.ru по созданию формы:
WebBrowser1.Navigate('www.ya.ru');

дальше делаем кнопку на форме:


procedure TForm1.Button1Click(Sender: TObject);
var
ovElements: OleVariant;
i: Integer;
begin
ovElements := WebBrowser1.OleObject.Document.forms.item(0).eleme nts;
for i := 0 to (ovElements.Length - 1) do
if (ovElements.item(i).tagName = 'INPUT') and
(ovElements.item(i).type = 'SUBMIT') and
(ovElements.item(i).Value = 'Recent Charges') then
ovElements.item(i).Click;



end;


Кнопка "Найти" имеет type="submit вроде бы всё нормально, но не работет? ! :( почему?

lo0 01.07.2006 16:11

Т.е. ты хочешь, чтобы у тебя на форме были собственные edit (поля для ввода) и кнопка "поиск", при нажатии на которую, происходил поиск на www.ya.ru по шаблону, задонному в твоем edit'е?

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.yandex.ru/yandsearch?rpt=rad&text='+edit1.text); // точно не помню, как на делфи строки соединять :(
end;

Оно?

donetsk 01.07.2006 21:57

lo0 нет, нет, нет ;) я не это хочу!

Если вы в обычном IE зайдете загрузите www.ya.ru в строке для ввода слова для поиска вбьёте его и нажмете на клавиатуре кнопку Enter , тогда у Вас произведеться поиск на данной страничьке.

Но если же вый зайдете на сайт www.ya.ru через компоненть TWebBrowser введете на стриничьке слово для поиска и нажмете на клавиатуре кнопку Enter , то ничего не произойдет :( ПОЧЕМУ Я НЕ ЗНАЮ?! и как сделать так чтобы в TWebBrowser , кнопка Enter работала как в IE?

asm33 02.07.2006 00:34

тогда вопрос, а если на страничке несколько форм для отправки, как же тогда искать нужную. Я так понял ты хочешь сделать универсальный метод

donetsk 02.07.2006 01:38

asm33 да нет не надо никаких универсальных обычное нажатие кноки ентер - почму в ie Оно работает , а в компоненте нет?!
Нужно сделать чтобы просто нажалась кнопка найти на www.ya.ru нажалась по нажатию кноки enter.
Как это сделать кто нибуть знает?!

~Fenix~ 02.07.2006 02:58

для начала нужно сделать первоночально твой edit активным , думаю с этим проблем нету, а потом просто создай процедуру(там есть специальная точно названия не помню) для компонента edit и ты получиш результат...
зы если я неправильно понял то отпишись

donetsk 02.07.2006 11:41

VIYuА причем тут процедура Edit к кнопке type="submit" на сайте www.ya.ru или на любом другом сайта?!

Можно сделать по окончанию загрузки страницы , или на любой другой внешней кнопке допустим на TBattom -это не важно где делать писать процедуру , и как она будет работать , везд есть процедуры On Press... или ON Enter - туда потом можно и засунуть..

Вопрос в том, как именно нажать из своего браузера програмно кнопку на яндексе "НАЙТИ!"

Go0o$E 02.07.2006 17:58

Вот тут- http://www.megalib.com/books/923/864.htm посмотри.

donetsk 02.07.2006 18:44

Go0o$EАААААААААААААААААА КЛАСССССССССССС я нереально рад суппер , я пробовал эту процедуру ,но не нашел у себя в компоненте TForm1 ничего связанного с процедурой MsgHandler , но когда Вы пыложили свой вариант я его пересмотрел ещё раз и понял , что процедура объявлена в начале кода в private.

Сейчас всё отличненько работает я нереально рад больщущее спасибо -за раскрытие глаз :)

Код всем классный , но не работет с фреймами :( как их отработать не знаю и с этим мучаюсь давно ..

Вот как обходить фреймы, но что -то всё равно не получается записать содержимое всех фреймов в мемо...



http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20388946.html


Время: 02:11