delphi中Left side cannot be assigned to

这是我的代码:

这是书上的代码:

报错:

请问哪里出现问题?

楼上说的确实有一定道理:这是否真的是书上的内容?

如果是的话,书上的内容可能有错。因为在Delphi中常数是不可以直接赋值的。但是你也可以利用指针、强制给常数赋值。当然这只针对声明类型的常数。例如:

procedure TForm1.Button1Click(Sender: TObject);
const
  StartPosition: Integer = 0;
  EndPosition: Integer = -1;
begin
  Edit1.SetFocus;
  PInteger(@StartPosition)^ := not StartPosition;
  PInteger(@EndPosition)^ := not EndPosition;
  SendMessage(Edit1.Handle,EM_SETSEL,StartPosition,EndPosition);
end;

追问

这是书上的原文,难道是书上写错了,我试试你的代码先,谢谢。

追答

    虽然你给书的标题打了码,但我还是找到了这本书的名字:《Delphi 6 应用开发指南》。这样一来原因也明了了。
    似乎在Delphi2007版本的常量好像是可以修改的。你可能使用的是Delphi2007以后的版本。而在Delphi2007以后可以通过以下方法来修改常量:

    方法一:
    在单元文件开头加上{$J+}就可以,例如:

 unit   Unit1; 
 {$J+} 
 interface

    方法二:
        Project---> Options--> Compiler---> Assignable   Typed   Constants勾选中,就可以了!(如图所示)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-20
你确定你的和书上的一模一样?你肯定还有一些内容没有写。书上的是一个工程,而你的只是书上的一部分,肯定会报错啊。
第2个回答  2013-11-20
const常量不能赋值

跟delphi编译器设定有关
相似回答