![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Влияние действий друг на друга [D7, XP]
Festil © (2010-09-18 19:39:00)Допустим есть процедура, которая постоянно выполняется
begin
.......
.......
end;
, в ней используется глобальная переменнная, пусть будет Count.
Вопрос прост,
1) изменится ли Count в процедуре, если на кнопку BitBtn.Click повесить приращение Count
2) тоже самое, но при условии что в процедуре будет присутствовать Application.ProcessMessage
Юрий Зотов (2010-09-18 21:28:00) [1]> Festil (18.09.10 19:51) [2]
> когда она будет на единицу больше?
После того, как будет выбрано из очереди и обработано сообщение. В однопоточной программе это произойдет после завершения цикла, либо при вызове Application.ProcessMessages (если он есть).
Festil (2010-09-18 20:50:00) [2]Эх, лучше бы я не задавал такой простой вопрос. Ответы найдены благодаря этому коду
var kk :integer=100;
implementation
procedure 563475;
begin
sleep(2000);
Application.ProcessMessages;
Sleep(3000);
Application.ProcessMessages;
if kk=100 then ShowMessage('k=100') else ShowMessage('k<>100');
sleep(2000);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
kk:=kk+1;
end;
Anatoly Podgoretsky (2010-09-18 20:46:00) [3]Наверно у тебя вопрос, как получить управление в BitBtn.Click?
sniknik (2010-09-18 20:26:00) [4]> но когда она будет на единицу больше?
глупый вопрос, в момент сразу после присвоения значения, остальное неважно, оно только для отвлечения внимания, или вопрос на самом деле в другом...
Festil (2010-09-18 19:51:00) [5]В это я верю, но когда она будет на единицу больше? во время выполнения процедуры, или после? Процедура в цикле, да и выполняется примерно секунду - две.
Anatoly Podgoretsky (2010-09-18 19:43:00) [6]> Festil (18.09.2010 19:39:00) [0]
То есть ты ставишь под сомнение математику, неверишь, что A +1 будет на
единицу больше?