Нарушение Delphi Access при перемещении кнопки на форме

Я пытаюсь переместить 2 кнопки на форме, используя проверку цикла для свойства left, но у меня есть нарушение прав доступа. Я завершаю процедуру с CreateThread ()

The code:

procedure AnimButton1();
var ImageCount: integer;
var b1, b2: integer;
begin

  try

       while (b2 <> 187) do
       begin
           b2 := frmNotification.btnBuzina2.Left;
           frmNotification.btnBuzina2.Left := b2 - 1;

       end;

       while (b1 <> 256) do
       begin
           b1 := frmNotification.btnBuzina.Left;
           frmNotification.btnBuzina.Left := b1 - 1;

       end;

  except;
  end;

end;

НО, когда я использую Sleep () по крайней мере с 5 миллисекундами, у меня нет нарушения прав доступа, например:

procedure AnimButton1();
var ImageCount: integer;
var b1, b2: integer;
begin

  try

       while (b2 <> 187) do
       begin
           b2 := frmNotification.btnBuzina2.Left;
           frmNotification.btnBuzina2.Left := b2 - 1;
           Sleep(5);
       end;

       while (b1 <> 256) do
       begin
           b1 := frmNotification.btnBuzina.Left;
           frmNotification.btnBuzina.Left := b1 - 1;
           Sleep(5);
       end;

  except;
  end;

end;

Может ли кто-нибудь помочь мне выяснить, почему без сна я получаю нарушение доступа, а с ним - нет?

спасибо заранее!

Ответы на вопрос(1)

Ваш ответ на вопрос