关于常量是否可以在程序中更改其值的有关问题
关于常量是否可以在程序中更改其值的问题。
我看别人的代码里定义的常量都可以在程序里边改变它的值,而我自己试验的时候就会报[Error] Unit1.pas(30): Left side cannot be assigned to这样的错误。我声明的常量是这个样子的:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
i:integer=0;
t=1;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
i:=t;//出错
i:=1;//出错
end;
end.
执行Button1Click的时候就会报上面那个错误。但别人用就不会,把别人代码弄出来:
const
AVICompressIdx:integer=1;
CloseTick:integer=600; // 自动关闭窗口秒计数
CM_AlarmPrompt =WM_USER+1; // 自定义告警提示消息
ZoneName:string= '.zzpat.com ';
HTYYTS:integer=3; // 后台语音提示次数
vPlaySound:boolean=false; // 后台声音提示播放标识
vPlayFile:shortstring= ' '; // 后台声音播放文件名
CurrentPlayNum:integer=0; // 后台声音已播放次数
AppFlag:integer=0; //程序退出时是否保存INI(默认为保存)
TabUser:integer=0; //判断button7是用来登陆还是用来注销用户(默认为登陆)
procedure TCenter114Form.Button7Click(Sender: TObject);
var UserLogForm:TUserLogForm;
begin
UserLogForm:=TUserLogForm.Create(self);
with UserLogForm do
begin
if ShowModal=1 then
begin
AdminData.Username:=UserLogForm.Edit1.Text;
AdminData.Password:=UserLogForm.Edit2.Text;
AdminData.TCVSRunFlag:=0;
AdminData.CmdType:=2;
if TabUser=0 then // 用户登录
begin
Alarm114Log.StartTime:=now; //获取话务员上线时间
我看别人的代码里定义的常量都可以在程序里边改变它的值,而我自己试验的时候就会报[Error] Unit1.pas(30): Left side cannot be assigned to这样的错误。我声明的常量是这个样子的:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
i:integer=0;
t=1;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
i:=t;//出错
i:=1;//出错
end;
end.
执行Button1Click的时候就会报上面那个错误。但别人用就不会,把别人代码弄出来:
const
AVICompressIdx:integer=1;
CloseTick:integer=600; // 自动关闭窗口秒计数
CM_AlarmPrompt =WM_USER+1; // 自定义告警提示消息
ZoneName:string= '.zzpat.com ';
HTYYTS:integer=3; // 后台语音提示次数
vPlaySound:boolean=false; // 后台声音提示播放标识
vPlayFile:shortstring= ' '; // 后台声音播放文件名
CurrentPlayNum:integer=0; // 后台声音已播放次数
AppFlag:integer=0; //程序退出时是否保存INI(默认为保存)
TabUser:integer=0; //判断button7是用来登陆还是用来注销用户(默认为登陆)
procedure TCenter114Form.Button7Click(Sender: TObject);
var UserLogForm:TUserLogForm;
begin
UserLogForm:=TUserLogForm.Create(self);
with UserLogForm do
begin
if ShowModal=1 then
begin
AdminData.Username:=UserLogForm.Edit1.Text;
AdminData.Password:=UserLogForm.Edit2.Text;
AdminData.TCVSRunFlag:=0;
AdminData.CmdType:=2;
if TabUser=0 then // 用户登录
begin
Alarm114Log.StartTime:=now; //获取话务员上线时间