数组赋值(50分)

  • 主题发起人 主题发起人 seagull007
  • 开始时间 开始时间
S

seagull007

Unregistered / Unconfirmed
GUEST, unregistred user!
一个方法中在定义数组时直接赋值,写成MyArray : Array[0..1] of String=('Edit1','Edit2');但编译时报错:MyArray 不能定义为局部变量,只有定义为全局变量才能这样赋值,但我不想定义全局变量,也不想用 &nbsp;<br>&nbsp; MyArray[0] := 'Edit1';<br>&nbsp; MyArray[1] := 'Edit2'; &nbsp;<br>这样赋值,如何解决?,难道数组不为全局变量就不能定义时赋值
 
const<br>&nbsp; MyArray : Array[0..1] of String=('Edit1','Edit2');
 
放在什么位置哦,是全局变量下吗
 
prucedure ........<br>const<br>&nbsp; MyArray : Array[0..1] of String=('Edit1','Edit2');<br>var<br>&nbsp; ...<br>begin<br>...<br>end;
 
呵呵,再问一下可不可以用const在private或public定义常量
 
可以,例如:<br>&nbsp;TForm1 = class(TForm)<br>&nbsp; 。。。<br>&nbsp; private<br>&nbsp; &nbsp; { Private declarations }<br>&nbsp; &nbsp; const MyArray : Array[0..1] of String=('Edit1','Edit2');<br>&nbsp; &nbsp;。。。<br>&nbsp; end;
 
我试了一下,要报错
 
我试了,没错啊。
 
你报什么错?
 
我试了一下,定义在 private中不行,<br>private<br>&nbsp; &nbsp; { Private declarations }<br>&nbsp; &nbsp; const MyArray : Array[0..1] of String=('Edit1','Edit2');<br>&nbsp; &nbsp; Man :Pman;<br>&nbsp; &nbsp; aman : TMan;<br>&nbsp; &nbsp; Combox :TComboBox;<br>&nbsp; &nbsp; function test(var a:integer):Integer;<br>&nbsp; &nbsp; function test1(a:integer;out str:String):Integer;<br>&nbsp; &nbsp; procedure closeP;<br>&nbsp; &nbsp; procedure ClearForm;<br>&nbsp; &nbsp; Function GetArrayYS(str:String;sarr:Array of String):Boolean;<br>&nbsp; public<br>&nbsp; &nbsp; { Public declarations }<br>&nbsp; &nbsp; str:String;<br>&nbsp; end;<br><br>这样定义可以,但也相当于一个全局常量,对不<br>unit Unit1;<br><br>interface<br><br>uses<br>&nbsp; Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br>&nbsp; Dialogs, StdCtrls, ComCtrls, DBXpress, DB, SqlExpr;<br><br>const MyArray : Array[0..1] of String=('Edit1','Edit2');<br><br>&nbsp; TForm1 = class(TForm)
 
定义在 private或public中报错:<br>[Error]Unit1.pas[51]:'END'expected but 'CONST' found<br>[Error]Unit1.pas[54]:'='expected but idenifier 'str' found<br>[Error]Unit1.pas[55]:Expression expected but 'END' found
 
我在 Delphi 2006 测试通过,你 delphi 是什么版本?<br>你在 TForm1 前定义也可以,不过是全局常量。一般都这么定义。<br><br>&nbsp; const MyArray : Array[0..1] of String=('Edit1','Edit2');<br><br>&nbsp; TForm1 = class(TForm)
 
我用的D7,可能是D7不支持这种写法,看来在D7中只能写成要么全局常量,要么在过程或函数内部常量,不能定义成private或public级的常量,谢谢,兄弟
 
多人接受答案了。
 
后退
顶部