delphi – 传递var参数时得到“E2197常量对象不能作为var参数传
这段代码工作正常:
procedure TForm2.Timer1Timer(Sender: TObject); var Text: string; begin SetLength (Text,555); GetWindowText (getforegroundwindow,PChar (Text),555); Form2.gtListBox1.Items.Add ( IntToStr (getforegroundwindow) + ': ' + Text); end; 但是当我放 var Text: string; 从Timer1Timer事件处理程序到
但我没有宣布文本为常数,为什么我得到这个错误? implementation {$R *.dfm} var char :integer;//first of all why does delphi let me declare variable that is also a type name procedure TForm2.Button1Click(Sender: TObject); begin char:=11; showmessage(IntToStr(char)); end; 我的第一个代码没有工作,因为我将文本声明为字符串,你说:”编译器可能认为它是对类型的引用而不是变量”,而不是为什么编译器认为它不是对类型的引用而不是在这种情况下的变量?我很迷惑 with form1 do text := 'blahblahblah'; 这在delphi部分是错的,我的意思是delphi不应该让我们做文本:=’blah’但是form1.text:= blah;或者用form1做文字:=’blah’;我是否需要打开/关闭一些编译器设置我在没有任何ide专家的情况下使用delphi 2010 解决方法
实际上,如果在实现部分声明Text并在Timer1Timer(Sender:TObject)中使用它,编译器会将Text视为Form1.Text.
将文本名称更改为sText,它将起作用. 编辑1: 因为Form1.Char之类的表单没有属性/字段. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |