Вот такой код:
procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin for i:= 10 to 5000 do begin 1. Button1.Caption:=IntToStr(i); 2. Form1.Color:=Random($FFFFFF); 3. Button1.Width:=i; 4. Form1.Width:=i; end; end;
Для удобства объяснения пронумеровал строчки внутри цикла.
Суть вопроса: Не могу добиться изменения свойств элемента внутри цикла.
В примере выше все работает, но если оставить только строки 1 и 2 то счетчик на кнопке работает а фон формы не меняется, точнее меняется один раз после окончания цикла. Если добавить строчку 3 или 4 то все работает. Так же не работает нормально если оставить только строку 3, т.е. ширина кнопки изменится на 5000 после окончания цикла, динамики не будет.
Складывается впечатление что если нет каких-то изменений внутри объекта, то его состояние не обновляется. Может кто нибудь объяснить суть происходящего? Есть ли какие либо нормы или правила на этот счет для конструкций языка, и как это можно заставить работать нормально? Поиски в гуглояндексах ничего вразумительного не дали к сожалению...