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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2010, 13:31   #1
SarahConner
Пользователь
 
Аватар для SarahConner
 
Регистрация: 03.01.2009
Сообщений: 32
По умолчанию прерывание цикла

Приветствую всех уважаемых программеров.
Уже второй день не могу справится, как кажется, с простой задачкой.
У меня есть программа, в которой обновляются строки с данными (скорость обновления переменная - то быстрей, то медленней). Я же написала программку, где мышка скачет на обновляемые строки, копирует их (Ctrl+C), вставляет в мой блакнот (и там я уже с этими данными потом работаю), затем ждет (Sleep(sec*1000),чтобы данные обновились и так по-кругу (for I := 1 to 1800 do) .
вопрос. по-скольку мышка скачет в цикле,
1) как мне уйти от конкретного числа итераций;
2) как прервать цикл для подстройки под изменение скорости обновления строк в чужой программе. Т.е. нужно типа запаузить, поменять в Edit2 параметр "sec" и опять запустить цикл.

спасибо всем откликнувшимся.
I'll be back
SarahConner вне форума Ответить с цитированием
Старый 21.10.2010, 13:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вопрос в лоппп: Ты это в потоке делаешь? Если нет рекомендую в отдельный поток вывалить эти действия.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2010, 14:04   #3
SarahConner
Пользователь
 
Аватар для SarahConner
 
Регистрация: 03.01.2009
Сообщений: 32
По умолчанию

ну,... я делаю так, наверное это не в потоке
//==
procedure TForm1.Button1Click(Sender: TObject);
begin
sec:=strtoint(edit1.Text);

for I := 1 to 1800 do
begin //for i=0
f1:= TStringList.Create();
x1:=564; y1:=199; x2:=52; y2:=783; x3:=1235; y3:=23; x4:=624; y4:=37;
SetCursorPos(x1, y1);
Mouse_Event(MOUSEEVENTF_LEFTDOWN, x1, y1, 0, 0);
Mouse_Event(MOUSEEVENTF_LEFTUP, x1, y1, 0, 0);
SetCursorPos(x2, y2);

и т.д.

memo1.Lines.add('цикл раз '+inttostr(i));
SetCursorPos(618, 47);
Sleep(sec*1000);

end;

А если в потоке, то по каким ключевым словам искать. попробую слово "ПОТОК" )
I'll be back
SarahConner вне форума Ответить с цитированием
Старый 21.10.2010, 14:07   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Уйти изх цикла можно через Break... Выкидывает на следующую за циклом конструкцию (либо сразу после end, в случае если к циклу прилеплен блок). Подробно - http://www.delphisources.ru/pages/fa...Break.php.html
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.10.2010, 14:11   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А если в потоке, то по каким ключевым словам искать
TThread ищи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.10.2010, 00:27   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
затем ждет (Sleep(sec*1000)
;ждать sllep( strtoint(edit2.text) *1000) и не нужно останавливать цикл
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
while прерывание цикла ололошенько Visual C++ 50 29.09.2010 09:02
Переход от цикла к циклу не выходя из цикла (без multithreading) Qousio Общие вопросы C/C++ 2 16.05.2009 09:27
6 прерывание ленусик Помощь студентам 5 30.05.2008 16:57
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat McMilin Помощь студентам 7 11.11.2007 14:10