|
#1
|
|||
|
|||
Массив в массиве
Здравствуйте. В связи со своими скудными знаниями в программировании, у меня не получается решить одну задачу.
Будьте добры помогите советом или наведите на путь истинный. Попытаюсь обрисовать что есть и что нужно получить в итоге. Есть Memo в нём в каждой строке есть числа от 1 до 10 Есть глобальная переменная X, зависящая от t, стоит задача пройти по строкам в мемо поле и выполнить код в зависимости от переменной X, X не может быть равно 2, если X не равно 2 то продолжить выполнение программы, если X =2, то подождать 1 секунду, если результат X будет равен 2 то подождать ещё 1 сек и так до тех пор по X примет значение, отличное от 2, после чего продолжить выполнение цикла мемо. Известно, при начале обработки цикла мемо, X не равен 2. Ниже приведён код, который я смог родить. Поправьте чтоли меня. Код:
for i:=0 to mmo1.Lines.Count - 1 do begin s:=mmo1.Lines[i]; mmo1.Lines[i]:=s; if X <> 2 then begin t:=2; 1 * t: = X end else begin if X = 2 then begin repeat begin Sleep(1000); end; until X <> 2; end; end; end; При таком раскладе программа выполняется 1 раз, хотя по идее должная была повторять 1 секундное ожидание пока X не примет значение отличное от 2 и продолжить выполнение цикла. Заранее спасибо за Ваши отзывы, очень надеюсь на ваши наставления! Последний раз редактировалось gebs, 18.08.2012 в 03:26. |
#2
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
||||
|
||||
Цитата:
Цитата:
|
#4
|
|||
|
|||
Цитата:
|
#5
|
|||
|
|||
Цитата:
|
#6
|
||||
|
||||
Цитата:
Если в цикле проверять не стало ли X равным 2, но при этом нигде в коде не устанавливать значение этой переменной в 2, то так бесконечно можно ждать... |
#7
|
|||
|
|||
Вы не понимаете сути. X не изменится, потому что программа ждет, а не выполняется дальше. Если в коде встречается sleep, то он sleep для всей программы.
|
#8
|
|||
|
|||
Цитата:
Хорошо, а какой вариант можете предложить? |
#9
|
||||
|
||||
Можно просто ввести рассчет Х в цикл. Если расчет Х ведется в таймере, то использовать
Код:
Application.ProcessMessages; |