
有谁知道在Delphi中定义常量是怎么定义的吗?
我是一个Delphi新手,喜欢Delphi编程...希望大家可以告诉我..谢谢其实我也知道是用const关键字的,但是我不知道应该把它写到哪里的......
我是一个Delphi新手,喜欢Delphi编程...希望大家可以告诉我..谢谢
其实我也知道是用const关键字的,但是我不知道应该把它写到哪里的... 展开
其实我也知道是用const关键字的,但是我不知道应该把它写到哪里的... 展开
展开全部
常量
对于在程序运行期间保持不变的值,Pascal 允许通过常量来声明。声明常量不必特定数据类型,但需要赋一个初值。编译器会根据所赋初值自动选用合适的数据类型。例如:
const
Thousand = 1000;
Pi = 3.14;
AuthorName = 'Marco Cantù';
Delphi 根据常量的值来决定它的数据类型。上例中的Thousand 变量,Delphi会选用SmallInt数据类型 (短整型--能容纳Thousand变量的最小整数类型)。如果你想告诉Delphi 采用特定的类型,你可在声明中加入类型名,方法如下:
const
Thousand: Integer = 1000;
对于声名的常量,编译器有两种编译选择:第一种为常量分配内存,并把常量的值放入内存;第二种在常量每次使用时复制常量值。第二种方法比较适合简单常量。
注意:16位的Delphi 允许你在程序运行期间改变已定义的常量值,就象一个变量一样。32位的Delphi为了向后兼容仍容许这种操作,只要你附加 $J 编译指令,或选择工程选项对话框中Compiler (编译器) 页的Assignable typed constants复选框就行。尽管如此,这里我还是要强烈建议万不得以不要使用上述操作,因为把新值赋给常量将使编译器不能对常量进行优化,与其如此不如直接声明一个变量。
资源串常量
当定义字符串常量时,你可这样写:
const
AuthorName = 'Marco Cantù';
从Delphi 3 开始,你可以用另一种方式写:
resourcestring
AuthorName = 'Marco Cantù';
上面两个语句都定义了一个常量,也就是定义了一个在程序运行期间保持不变的值,但两者的实现过程却不同,用resourcestring 指令定义的字符串变量将被保存到程序资源的字符串表中。从例子ResStr你可了解资源串的实际作用,例子中设置了一个按钮, 相应代码如下:
resourcestring
AuthorName = 'Marco Cantù';
BookName = 'Essential Pascal';
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage (BookName + #13 + AuthorName);
end;
以上代码中的两个字符串将分两行输出显示,因为字符串被分行符 #13 隔开。
有趣的是,当你用资源编辑器打开执行文件时,你会在程序资源中看到你所定义的字符串。这意味着字符串并没有进入编译代码,而是保存在执行文件 (EXE文件) 的一个单独区域。
注意:简而言之,采用资源的好处一方面可让Windows 来完成有效的内存处理,另一方面不用更改源代码就可实现程序的本地化 (把字符串翻译成不同的语言)。
对于在程序运行期间保持不变的值,Pascal 允许通过常量来声明。声明常量不必特定数据类型,但需要赋一个初值。编译器会根据所赋初值自动选用合适的数据类型。例如:
const
Thousand = 1000;
Pi = 3.14;
AuthorName = 'Marco Cantù';
Delphi 根据常量的值来决定它的数据类型。上例中的Thousand 变量,Delphi会选用SmallInt数据类型 (短整型--能容纳Thousand变量的最小整数类型)。如果你想告诉Delphi 采用特定的类型,你可在声明中加入类型名,方法如下:
const
Thousand: Integer = 1000;
对于声名的常量,编译器有两种编译选择:第一种为常量分配内存,并把常量的值放入内存;第二种在常量每次使用时复制常量值。第二种方法比较适合简单常量。
注意:16位的Delphi 允许你在程序运行期间改变已定义的常量值,就象一个变量一样。32位的Delphi为了向后兼容仍容许这种操作,只要你附加 $J 编译指令,或选择工程选项对话框中Compiler (编译器) 页的Assignable typed constants复选框就行。尽管如此,这里我还是要强烈建议万不得以不要使用上述操作,因为把新值赋给常量将使编译器不能对常量进行优化,与其如此不如直接声明一个变量。
资源串常量
当定义字符串常量时,你可这样写:
const
AuthorName = 'Marco Cantù';
从Delphi 3 开始,你可以用另一种方式写:
resourcestring
AuthorName = 'Marco Cantù';
上面两个语句都定义了一个常量,也就是定义了一个在程序运行期间保持不变的值,但两者的实现过程却不同,用resourcestring 指令定义的字符串变量将被保存到程序资源的字符串表中。从例子ResStr你可了解资源串的实际作用,例子中设置了一个按钮, 相应代码如下:
resourcestring
AuthorName = 'Marco Cantù';
BookName = 'Essential Pascal';
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage (BookName + #13 + AuthorName);
end;
以上代码中的两个字符串将分两行输出显示,因为字符串被分行符 #13 隔开。
有趣的是,当你用资源编辑器打开执行文件时,你会在程序资源中看到你所定义的字符串。这意味着字符串并没有进入编译代码,而是保存在执行文件 (EXE文件) 的一个单独区域。
注意:简而言之,采用资源的好处一方面可让Windows 来完成有效的内存处理,另一方面不用更改源代码就可实现程序的本地化 (把字符串翻译成不同的语言)。
展开全部
例如:
const
pi=3.1415926
定义常量在定义变量之前。常量不可以赋值。
const
pi=3.1415926
定义常量在定义变量之前。常量不可以赋值。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
例如:
const
pi=3.1415926
运行中不可改变常量值。
const
pi=3.1415926
运行中不可改变常量值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Const
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询