Delphi WebBrowser не работает [ENTER]

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by donetsk, 1 Jul 2006.

  1. donetsk

    donetsk Elder - Старейшина

    Joined:
    30 Jan 2006
    Messages:
    158
    Likes Received:
    14
    Reputations:
    2
    Вопрос использую компонент WebBrowser -полный аналог IE.
    после настройки его , модернизации и всего прочего всё отлично работает тот же ie , но в IE после нажатия кнопки Еnter на некоторых сайтах срабатывает кнопка пост , допустим на www.yandex.ru вы нажимаете Enter и у вас срабатывает кнопка найти, но в WebBrowser после нажатия на Enter такого почему-то не происходит?!
    ПОЧЕМУ?КТО МОЖЕТ ПОДСКАЗАТЬ КАК ЭТУ ПРОБЛЕМУ РЕШИТЬ?
     
  2. lo0

    lo0 Elder - Старейшина

    Joined:
    6 Mar 2006
    Messages:
    113
    Likes Received:
    20
    Reputations:
    14
    Нужно фокус по дефаулту на браузер поставить.
     
  3. donetsk

    donetsk Elder - Старейшина

    Joined:
    30 Jan 2006
    Messages:
    158
    Likes Received:
    14
    Reputations:
    2
    а как это сделать?
     
  4. Brun

    Brun Elder - Старейшина

    Joined:
    21 Mar 2006
    Messages:
    95
    Likes Received:
    57
    Reputations:
    16
    Кнопки обрабатывать нужно
     
  5. donetsk

    donetsk Elder - Старейшина

    Joined:
    30 Jan 2006
    Messages:
    158
    Likes Received:
    14
    Reputations:
    2
    ну вот на примере отработки кноки "Найти!" на сайте 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).elements;
    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 вроде бы всё нормально, но не работет? ! :( почему?
     
  6. lo0

    lo0 Elder - Старейшина

    Joined:
    6 Mar 2006
    Messages:
    113
    Likes Received:
    20
    Reputations:
    14
    Т.е. ты хочешь, чтобы у тебя на форме были собственные edit (поля для ввода) и кнопка "поиск", при нажатии на которую, происходил поиск на www.ya.ru по шаблону, задонному в твоем edit'е?

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

    Оно?
     
  7. donetsk

    donetsk Elder - Старейшина

    Joined:
    30 Jan 2006
    Messages:
    158
    Likes Received:
    14
    Reputations:
    2
    lo0 нет, нет, нет ;) я не это хочу!

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

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

    asm33 Elder - Старейшина

    Joined:
    19 Jan 2006
    Messages:
    55
    Likes Received:
    7
    Reputations:
    4
    тогда вопрос, а если на страничке несколько форм для отправки, как же тогда искать нужную. Я так понял ты хочешь сделать универсальный метод
     
  9. donetsk

    donetsk Elder - Старейшина

    Joined:
    30 Jan 2006
    Messages:
    158
    Likes Received:
    14
    Reputations:
    2
    asm33 да нет не надо никаких универсальных обычное нажатие кноки ентер - почму в ie Оно работает , а в компоненте нет?!
    Нужно сделать чтобы просто нажалась кнопка найти на www.ya.ru нажалась по нажатию кноки enter.
    Как это сделать кто нибуть знает?!
     
  10. ~Fenix~

    ~Fenix~ Banned

    Joined:
    26 Jul 2005
    Messages:
    190
    Likes Received:
    50
    Reputations:
    6
    для начала нужно сделать первоночально твой edit активным , думаю с этим проблем нету, а потом просто создай процедуру(там есть специальная точно названия не помню) для компонента edit и ты получиш результат...
    зы если я неправильно понял то отпишись
     
  11. donetsk

    donetsk Elder - Старейшина

    Joined:
    30 Jan 2006
    Messages:
    158
    Likes Received:
    14
    Reputations:
    2
    VIYuА причем тут процедура Edit к кнопке type="submit" на сайте www.ya.ru или на любом другом сайта?!

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

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

    Go0o$E Members of Antichat

    Joined:
    27 Jan 2006
    Messages:
    304
    Likes Received:
    228
    Reputations:
    419
    Вот тут- http://www.megalib.com/books/923/864.htm посмотри.
     
    1 person likes this.
  13. donetsk

    donetsk Elder - Старейшина

    Joined:
    30 Jan 2006
    Messages:
    158
    Likes Received:
    14
    Reputations:
    2
    Go0o$EАААААААААААААААААА КЛАСССССССССССС я нереально рад суппер , я пробовал эту процедуру ,но не нашел у себя в компоненте TForm1 ничего связанного с процедурой MsgHandler , но когда Вы пыложили свой вариант я его пересмотрел ещё раз и понял , что процедура объявлена в начале кода в private.

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

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

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



    http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20388946.html
     
    #13 donetsk, 2 Jul 2006
    Last edited: 2 Jul 2006