Type
  TMoveType=record
  LeftTopBool:Boolean;
  TopCenterBool:Boolean;
  RightTopBool:Boolean;
  RightCenterBool:Boolean;
  RightBottomBool:Boolean;
  BottomCenterBool:Boolean;
  LeftBottomBool:Boolean;
  LeftCenterBool:Boolean;
  InFrameBool:Boolean;
  OutFrameBool:Boolean;
  end;我如何写成别的类型 或者 怎么把他作为全局参数调用并修改内容

Type
  TMoveType=class
  LeftTopBool:Boolean;
  TopCenterBool:Boolean;
  RightTopBool:Boolean;
  RightCenterBool:Boolean;
  RightBottomBool:Boolean;
  BottomCenterBool:Boolean;
  LeftBottomBool:Boolean;
  LeftCenterBool:Boolean;
  InFrameBool:Boolean;
  OutFrameBool:Boolean;
  end;

解决方案 »

  1.   

    var test:TMoveType不就可以了?
      

  2.   

    不行 在全局内不能获得数据
    我把其中一个赋值TRUE  结果跟踪后还是全部为false
      

  3.   

    var
      test : TMoveType;  做为全局的
    然后test.LeftTopBool := True;在跟踪其结果是false? 要这样,LZ重装系统吧 
      

  4.   

    【作为全局参数调用并修改内容】?procedure fun(var test:TMoveType);
    begin
      test.LeftTopBool := True;
    end;
    加了var,test的变化才会等同于 调用者传入的test变量
      

  5.   

    我就是按你们写的那么做的 可是就是传回来的是FALSE  郁闷
      

  6.   

    楼上说的对,需要在public中定义变量,然后对该变量进行操作,类似的应用我在不少程序中都有应用,没有发现异常
      

  7.   

    把代码贴上来吧.如果你在代码中有任何Copy引用而又更改值的话实际上是不会更改全局的那个变量.例如code=Delphi(Pascal)]
    var
      gTest: TMoveType;
    public ChangeRecord(mtRec: TMoveType);
    begin
      mtRec.LeftTopBool = true;
    end;public TestChange();
    begin
      ChangeRecord(gTest);
    end;在上面这个例子里执行testchange之后 gtest不会发生任何变化,主要是传参时发生完整copy了,像这样的场合delphi中可能还有你没有注意到的地方,最好能看一下你的代码片段.
      
    [/code]