D denling Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-15 #1 我在implement 中设数组变量,但在各过程中对这些变量进新行操作后, 但一出过程 ,数组变量中的值就没有了。 难道只能用function?
L littlegrass Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-15 #2 implementation后定义的全局变量属unit私有,只限本unit内部使用。要 想让其它unit使用,必须在implementation之前定义,并且要uses该单元! 不仅数组,其它类型变量也一样。
implementation后定义的全局变量属unit私有,只限本unit内部使用。要 想让其它unit使用,必须在implementation之前定义,并且要uses该单元! 不仅数组,其它类型变量也一样。
L littlegrass Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-15 #3 给你一个例子:这个例子里,Unit1和Unit2的全局变量可以互相访问! Unit1.pas ... var Form1 : TForm1; m1 : integer; // 在其它unit可见 implementation uses unit2; // var s1 : array[0..1] of integer; // 在其它unit不可见 k1 : integer; ... procedure TForm1.Button1Click(Sender: TObject); begin m1 := 66; Form2.ShowModal; s1[0] := s2[0]; s1[1] := s2[1]; k1 := k2; end; ======================================================== Unit2.pas ... var Form2 : TForm2; s2 : array[0..1] of integer; // 在其它unit可见 k2 : integer; implementation uses unit1; ... procedure TForm2.Button1Click(Sender: TObject); begin s2[0] := 22; s2[1] := 33; k2 := m2; end;
给你一个例子:这个例子里,Unit1和Unit2的全局变量可以互相访问! Unit1.pas ... var Form1 : TForm1; m1 : integer; // 在其它unit可见 implementation uses unit2; // var s1 : array[0..1] of integer; // 在其它unit不可见 k1 : integer; ... procedure TForm1.Button1Click(Sender: TObject); begin m1 := 66; Form2.ShowModal; s1[0] := s2[0]; s1[1] := s2[1]; k1 := k2; end; ======================================================== Unit2.pas ... var Form2 : TForm2; s2 : array[0..1] of integer; // 在其它unit可见 k2 : integer; implementation uses unit1; ... procedure TForm2.Button1Click(Sender: TObject); begin s2[0] := 22; s2[1] := 33; k2 := m2; end;
梁 梁志虎 Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-16 #5 你在定义过程时,形参的说明有没有加var关键词,如想把变量带出,必须var
D dubhe Unregistered / Unconfirmed GUEST, unregistred user! 1998-11-16 #6 是参数问题还是全局变量问题? 好像是参数问题嘛. 看下面这个例子,没有必要用函数 。 ... implementation var theArray:Array[0..20] of Integer; {$R *.DFM} procedure FixTheArray(var theArray:Array of Integer); var i:Integer; begin for i:=Low(theArray) to High(theArray)do theArray:=i; end; ...
是参数问题还是全局变量问题? 好像是参数问题嘛. 看下面这个例子,没有必要用函数 。 ... implementation var theArray:Array[0..20] of Integer; {$R *.DFM} procedure FixTheArray(var theArray:Array of Integer); var i:Integer; begin for i:=Low(theArray) to High(theArray)do theArray:=i; end; ...