在窗体模块中的private中定义了一个全局数组,在一个treeview的exit事件中给它定义了长度和赋值(这部分会先执行的,并且成功执行) 然后在另外一个事件中再去引用这个全局数组的元素时报错调试length(数组名)=0
high(数组名)=-1,我觉得我见鬼了难道其他过程中就不可以访问该全局数组??
我放到public上,结果还是一样

解决方案 »

  1.   

    应该没问题的。下面是我测试的代码。你运行后任意点击TreeView的节点,然后点击Button试试(点击Button时即触发了TreeView的OnExit)type
      TForm1 = class(TForm)
        TreeView1: TTreeView;
        Button1: TButton;
        procedure TreeView1Exit(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        FArr: array of integer;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.TreeView1Exit(Sender: TObject);
    begin
      SetLength(FArr, TTreeView(Sender).Selected.Index);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Showmessage(InttoStr(Length(FArr)));
      Showmessage(InttoStr(High(FArr)));
    end;procedure TForm1.FormCreate(Sender: TObject);
    var I : integer;
    begin
      TreeView1.Items.Clear;
      for I := 0 to 5 do
        TreeView1.Items.Add(nil, InttoStr(I));
    end;
      

  2.   

    跟踪一下,你所说的事件可定在TreeView的Exit之前就执行了