Почему не меняется значение метки?
Добавлено: 11.05.2012 19:30:07
Проблема в Lazarus.
Пустая форма, на ней метка Label1. Хочу, чтобы надпись на ней перебирала все значения от 0 до 100.
Программа же задумывается на пару секунд, потом пишет "Обработано 100 из 100", то есть последнее значение.
Т.е. пока крутится в цикле, значение метки не обновляется.
Как сделать, чтоб обновлялось?
UPD
Добавил прогресбар. Он движется от 0 к 100, как надо. А значение метки так и не обновляется. Только через секунду-две после того, как прогрессбар дошел до 100, появляется надпись "Обработано 100 из 100".
- Код: Выделить всё
procedure TForm1.Label1Click(Sender: TObject);
var i: integer;
begin
for i:=0 to 100 do
begin
Label1.Caption := 'Обработано '+IntToStr(i)+' из 100 ';
Sleep(5);
end;
end;
Пустая форма, на ней метка Label1. Хочу, чтобы надпись на ней перебирала все значения от 0 до 100.
Программа же задумывается на пару секунд, потом пишет "Обработано 100 из 100", то есть последнее значение.
Т.е. пока крутится в цикле, значение метки не обновляется.
Как сделать, чтоб обновлялось?
UPD
Добавил прогресбар. Он движется от 0 к 100, как надо. А значение метки так и не обновляется. Только через секунду-две после того, как прогрессбар дошел до 100, появляется надпись "Обработано 100 из 100".
- Код: Выделить всё
procedure TForm1.Label1Click(Sender: TObject);
var i: integer;
begin
for i:=0 to 200 do
begin
Label1.Caption := 'Обработано '+IntToStr(i)+' из 200 ';
ProgressBar1.Position := i;
Sleep(5);
end;
end;