|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите новичку с TWebBrowser.Navigate2()
пробую написать программку в которой
по количеству строк в таблице SG происходит навигация //******************** // выполнение навигации procedure SendData(TargetData:integer); begin .... в которой навигация осуществляется : GForm.WebB.Navigate2(URLN, Flags, TargetFrameName, PostData, Headers); ShowMessage('Данные отправлены'); end; //*************** procedure TGForm.Timer1Timer(Sender: TObject); var i:integer; begin For i:=1 to SG.RowCount do begin GForm.SendData(i); end; end; //************** происходит выполнение только первого перехода видимо цикл проходит раньше чем webBrowser справляется с командой... пробовал в цикл ставить задержку sleep(1000*10); не помогло - помогите пож - кто знает. |
#2
|
|||
|
|||
в преведущем сообщении опечатка
вот правильный вариант //*************** procedure TGForm.Timer1Timer(Sender: TObject); begin For i:=1 to SG.RowCount do begin GForm.SendData(SG.Cells[1,i]); end; end; //************** |
#3
|
|||
|
|||
попробую описать подоступнее
при переходе на траничку http://MySite.ru/myPage.php //-------- возникает формочка - с вопросом "Столица Берлина?" и в текстовое поле предлагается ввести (переменная AText) и кнопочка 'ОК' //-------- после того как вы ввели туда некий текст и нажали кнопку 'ок' вы видите формочку 'Вы действительно считаетет (AText) столицей Берлина? ' и кнопочка 'ОК' //-------- после нажатия кнопки Вы видите окно - с вопросом "Столица Германии?" если на один вопрос получается ответить програмно используя WebBrowser.Navigate2(); то на несколько вопросов подряд - программно отчетить не получается. (предложенные вами варианты с использованием indy не срабатывают даже на первый переход) А в цикл For i:=1 to SG.RowCount do Begin SendData(SG.Cells[1,i]); end; какую то задержку кроме sleep и проверять отправились ли данные/загрузилась ли страничка и если отправились/загрузилась - то только после этого переходить к следующему обходу в цикле. вот пока у меня это работает таким кодом if (FlagComplete)and(FlagBoosy) then begin //Timer1.Enabled:=False; FlagBusy:=False; Inc(myNumberData); case myNumberData of // 01:SendData(SG.Cells[1,1]); // 02:SendData(SG.Cells[1,2]); ... и т.д. но тут для каждого вопроса я должен править код программы так как вопросов может быть любое количество. |