Type区声明的问题(50分)

  • 主题发起人 主题发起人 ReStart
  • 开始时间 开始时间
R

ReStart

Unregistered / Unconfirmed
GUEST, unregistred user!
在Type区的声明中,为什么有时候出现的是等号,有时候出现的是冒号呢?
例如:
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
...
另外,edit1:TEdit是什么意思啊,在后面的var部分有Form1: TForm1;为什么就没有
Edit1:Tedit1,这样的句子呢?



 
声明类用等号,声明变量用变量.
Edit1:TEdit当然就是声明Edit1为TEdit类型.
相当于用C中 TEdit Edit1;
Edit1:TEdit1也可以呀,不过你得先声明一个TEdit1类。
PS:这种问题还是看书或Help吧。
 
在Pascal 中 ,冒号一般是定义一种已有的数据类型或类(包括自定义的)的“变量”
比如:
var i,j:Integer
//Integer为系统预定义的标准数据类型,i为Integer类型的变量
Form1:TForm1

Edit1:TEdit
//定义的类的对象实例变量,TForm1为自定义类,TEdit为系统预定义的类

而等号一般是定义一种新的“类型或类”
比如:
Type Int=Integer
//定义一数据类型的引用名,等同于Integer,其后就可
以用Var i:Int;定义Int型其实就是Integer型的变量。
Type TForm1=Class(TForm)
//定义一个新类,继承自TForm类,上面的Form1:TForm1
便是定义此新类的对象变量。
Type Student=Record
//定义新的Student为记录型数据。

在Pascal中,“记录类型和类”可以有不同数据类型的元组“变量”,所以用Type定义记录或类以及
其元组变量时,
Type
TForm1 = class(TForm) //定义一个新“类”,继承自TForm(系统预定义的类),
所以用等号;
// 下面定义新“类”的元组变量:
Edit1: TEdit

Edit2: TEdit
//定义TEdit(系统预定义的类)的对象“变量”Edit2
所以用冒号;
Button1: TButton;
....

所以,Type中等号和冒号的区别是:等号是定义“类或数据类型”,而冒号是定义其元组“变量”。
 
找本object pascal书来看一下吧。
 
看来你真的是很菜
 
那么上面几位大侠,你怎么样来声明以下的枚举变量呢。

Gsapce=(1.0,1.5,2.0);

其中1.0,1.5,2.0是字符串。象上面那样写是错的,谁知道 怎么写。
 
>其中1.0,1.5,2.0是字符串
这时已不是字符串,是Gsapce类型的一个值了。
 
我可能未说清楚,我要声明一个集合,其中包含'1.0','1.5','2.0'这三个字符串,
我上面写的Gsapce=(1.0,1.5,2.0);这句话是错的,编绎不通过。所以我不知道怎么样
写这句话。我就是希望如你所说的那样,成为GSapce的一个值.
 
你这样写怎么能声明一个集合。
不明白你要干什么?
 
那应该怎么样写呢?
帮助上是这样写的:
gaa=(red,blue,green);是可以的,但我换了'1.0','2.0'就不行,是为什么。
 
枚举变量当然不能用一个字符串常量了。
你可以写成gaa=(first,second,third);
然后声明:mylength:gaa;

程序中判断if mylength=first then ....:=‘1。0’else ....

看你要干什么了。

够详细的了吧。快给分。呵呵
 
这种回答肯定不能给分,因为我也知道,而且我不用这样写
我直接写mylength:integer;就可以了。不能给分。
我问的就是能不能把first,second,third换成1.0,1.5,2.0
 
枚举类型里的元素必须是标志符——必须以字母开头
 
建议你先去看一看 Pascal 方面的基础书籍,里面对于这些基本概念讲解的很详细的。在这里
很难一言而尽的。
 
多人接受答案了。
 
后退
顶部