Я не могу перекрасить свою форму в Delphi - PullRequest
0 голосов
/ 16 января 2012

Я создаю программу Delphi, и у меня есть этот код в моей программе:

begin
  if edit1.Text='salam' then
  begin
    for i := 1 to 10 do
    begin
      progressbar1.Value := progressbar1.Value+1;
      sleep(100);
    end;
  end;
end;

Я хочу, чтобы индикатор прогресса двигался плавно. Но этот код не такой.
Что я должен делать? Я хочу перекрасить форму после сна.

1 Ответ

1 голос
/ 16 января 2012

Вы должны сделать это так ...

begin
  if edit1.Text='salam' then
  begin
    progressbar1.Step:=1;
    for i := 1 to 10 do
    begin
      progressbar1.StepIt;
      Application.ProcessMessages;
      Sleep(100);
    end
  end;
end;

Windows необходимо обработать сообщения для перерисовки и знать, что ваше приложение не загружено, Application.ProcessMessages совершает эту магию.

...