当我得到这个错误时,我通常会掩盖它,并修复导致它的任何语法错误,但出于好奇,tLABEL在意外的tLABEL中到底意味着什么?
我试着寻找答案,但只是有很多人试图帮助他们解决错误。
我还发现了这个定义:
tlabel是一个无窗口的VCL控件,在上显示不可编辑的文本表单。它是以StdCtrls.pas为单位定义的。
但我不认为这是一个很容易理解的定义。
tLABEL
是一个"标签"标记。它通常用于以更新的1.9格式指定哈希:
{ key: value }
在上面的示例中,key:
在内部被识别为Label的令牌。1.9+解析器将其转换为符号,而1.8解析器则没有。
您看到的错误发生在解析器在它不期望的地方找到它认为是Label令牌的地方。
此外,对"tlabel"非窗口控件的引用非常无关——TLabel
类是Delphi使用的Visual Component Library的一部分,正如.pas
(Pascal)扩展所暗示的那样。
因为冒号之间有空格,所以发生该错误的示例应该是ActiveRecord::Base
而不是ActiveRecord: :Base