加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 是否可以在Synchronize中使用一个简单的循环?

发布时间:2020-12-15 09:32:19 所属栏目:大数据 来源:网络整理
导读:procedure TGridThread.Execute;var i: integer; iIEBitmap: TIEBitmap; iWidth: integer; iHeight: integer; iImageCount: integer; iArrayOfBitmaps: array of TBitmap;begin inherited; { Free the thread onTerminate } FreeOnTerminate := True; if not
procedure TGridThread.Execute;
var
  i: integer;
  iIEBitmap: TIEBitmap;
  iWidth: integer;
  iHeight: integer;
  iImageCount: integer;
  iArrayOfBitmaps: array of TBitmap;
begin
  inherited;
  { Free the thread onTerminate }
  FreeOnTerminate := True;
  if not Terminated then
    begin    
      if not Terminated then
      begin
        Synchronize(
         procedure
           begin
              iIEBitmap := TIEBitmap.Create(Form1.ImageEnView1.IEBitmap);
              iWidth := Form1.ImageEnMView1.ImageOriginalWidth[0];
              iHeight := (Form1.ImageEnMView1.ImageOriginalHeight[0] + iSpaceBetweenImages) *
              Form1.ImageEnMView1.ImageCount;
              iImageCount := Form1.ImageEnMView1.ImageCount;
            end);

           SetLength(iArrayOfBitmaps,iImageCount);

           Synchronize(
            procedure
            begin
              for i := 0 to iImageCount - 1 do // [DCC Error] Unit1.pas(334): E1019 For loop control variable must be simple local variable
              begin
                iArrayOfBitmaps[i] := Form1.ImageEnMView1.GetBitmap(i);
                { Free the bitmap }
                Form1.ImageEnMView1.ReleaseBitmap(0);
               end;
            end);

解决方法

您只需要为循环计数器声明一个局部变量:

Synchronize(
  procedure
  var
    i: Integer;
  begin
    for i := 0 to iImageCount - 1 do
    begin
      iArrayOfBitmaps[i] := Form1.ImageEnMView1.GetBitmap(i);
      Form1.ImageEnMView1.ReleaseBitmap(0);
    end;
  end
);

循环变量必须是循环出现的过程的本地变量.在您的代码中,您已将变量声明为不同过程中的本地变量.因而编译错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读