小编Thi*_*ini的帖子

在表单上移动按钮时Delphi访问冲突

我试图在窗体上移动2个按钮,使用while循环检查按钮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;
Run Code Online (Sandbox Code Playgroud)

但是,当我使用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 …
Run Code Online (Sandbox Code Playgroud)

delphi button access-violation

0
推荐指数
1
解决办法
274
查看次数

标签 统计

access-violation ×1

button ×1

delphi ×1