Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2013, 14:02   #1
Cruzel
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 31
Восклицание Сделать задержку

Здравствуйте. Необходимо сделать в программе задержку. Работаю в компоненте TChromium. В браузере открывается диалоговое окно загрузки файла, открывается как модальное (нельзя ничего сделать в программе, даже код не выполняется, пока оно не закроется). После его закрытия те команды, которые должны были по идее выполнены сразу после его открытия - выполняются все сразу. К примеру:

Код:
SetCursorPos(Form1.mouse1x,Form1.mouse1y);
mouse_event(MOUSEEVENTF_LEFTDOWN,mouse1x,mouse1y,0,0); //нажать левой кнопки
mouse_event(MOUSEEVENTF_LEFTUP,mouse1x,mouse1y,0,0); //отпустить левую кнопку
После этого открывается диалоговое модальное окно. Далее идёт такой код:

Код:
 Memo2.Lines.Add(edFName.Text+':'+edPassword.Text+':'+edMail.Text);
 accst:=accst+1;
 js:='document.getElementsByName("username_login")[0].value ="'+'cruzel'+ '"';
  Chromium1.Browser.MainFrame.ExecuteJavaScript(js,'about:blank',0); 
sleep(3);
 js:='document.getElementById("login").click()';
 Chromium1.Browser.MainFrame.ExecuteJavaScript(js,'about:blank',0);
 sdelay:=1;
После закрытия окна выполняется этот код весь разом, не смотря на то, что стоит sleep. Мне нужно поставить какую то паузу, чтобы после открытия этого модального окна программа себя останавливала, и после закрытия выполняла остальные команды.
Cruzel вне форума Ответить с цитированием
Старый 04.12.2013, 14:47   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Окно на то и модальное чтобыродительский процесс повис в ожидании дейсвия на юзером так изначально задумано.

Если это в браузере, что ж добро пожаловать в мир JS который может на это влиять.
После загрузки страницы вставляете JS, который жде события сохрнения файла.

Магический JS пишите сами используя документацию движка chrome.
Человек_Борща вне форума Ответить с цитированием
Старый 04.12.2013, 17:38   #3
Cruzel
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Окно на то и модальное чтобыродительский процесс повис в ожидании дейсвия на юзером так изначально задумано.

Если это в браузере, что ж добро пожаловать в мир JS который может на это влиять.
После загрузки страницы вставляете JS, который жде события сохрнения файла.

Магический JS пишите сами используя документацию движка chrome.
Подтолкните в нужное направление. После загрузки файла страница обновляется. С помощью js можно найти определённую надпись на странице? К примеру, чтобы это было условие. Надпись появилась - выполняются следующие команды.

Последний раз редактировалось Cruzel; 04.12.2013 в 17:43.
Cruzel вне форума Ответить с цитированием
Старый 05.12.2013, 01:54   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Ну выже добавояете код на страницу:
Код:
 js:='document.getElementsByName("username_login")[0].value ="'+'cruzel'+ '"';
  Chromium1.Browser.MainFrame.ExecuteJavaScript(js,'about:blank',0);
Вот в переменную js, пишите немного больше кода JavaScript который перехватывает всякие диалоги, а перехватах диалога именно в хроме, читайте документацию храма...
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как правильно сделать задержку на выполнение действий? gylayko Помощь студентам 3 08.03.2013 19:17
Элегантно реализовать задержку HellMercenariess Общие вопросы Delphi 2 20.07.2012 08:02
Расчитать задержку (PIC) dimkoo Помощь студентам 1 27.12.2011 00:12
как сделать задержку вывода изображения pupilMartyr Общие вопросы Delphi 9 03.05.2011 21:57
как сделать паузу (или задержку) в цыкле : с# Natok Помощь студентам 7 30.05.2009 12:55