为什么我不能在TRecord中使用Variable?

佩德罗·奥林匹奥

我对TRecord的使用有疑问。

我可以在记录属性中使用VAR吗?

例如:

我的记录:

TStyleEvalue = record
    ID: Integer;
    Value: TFontStyles;
    Name: String;

  end;

当我尝试在属性中将VARName属性设置为以下代码时:

StylesEvalueArray : array[0..15] of TStyleEvalue = (
    (ID: 00; Value: [];                                        Name: LB_NORMAL),
    (ID: 01; Value: [fsBold];                                  Name: LB_NEGRITO),
    (ID: 02; Value: [fsItalic];                                Name: LB_ITALICO),
    (ID: 03; Value: [fsBold,fsItalic];                         Name: LB_NEGRITO+', '+LB_ITALICO),
    (ID: 04; Value: [fsUnderline];                             Name: LB_SUBLINHADO),
    (ID: 05; Value: [fsBold,fsUnderline];                      Name: LB_NEGRITO+', '+LB_SUBLINHADO),
    (ID: 06; Value: [fsItalic,fsUnderline];                    Name: LB_ITALICO+', '+LB_SUBLINHADO),
    (ID: 07; Value: [fsBold,fsItalic,fsUnderline];             Name: LB_NEGRITO+', '+LB_ITALICO+', '+LB_SUBLINHADO),
    (ID: 08; Value: [fsStrikeOut];                             Name: LB_TACHADO),
    (ID: 09; Value: [fsBold,fsStrikeOut];                      Name: LB_NEGRITO+', '+LB_TACHADO),
    (ID: 10; Value: [fsItalic,fsStrikeOut];                    Name: LB_ITALICO+', '+LB_TACHADO),
    (ID: 11; Value: [fsBold,fsItalic,fsStrikeOut];             Name: LB_NEGRITO+', '+LB_ITALICO+', '+LB_TACHADO),
    (ID: 12; Value: [fsUnderline,fsStrikeOut];                 Name: LB_SUBLINHADO+', '+LB_TACHADO),
    (ID: 13; Value: [fsBold,fsUnderline,fsStrikeOut];          Name: LB_NEGRITO+', '+LB_SUBLINHADO+', '+LB_TACHADO),
    (ID: 14; Value: [fsItalic,fsUnderline,fsStrikeOut];        Name: LB_ITALICO+', '+LB_SUBLINHADO+', '+LB_TACHADO),
    (ID: 15; Value: [fsBold,fsItalic,fsUnderline,fsStrikeOut]; Name: LB_NEGRITO+', '+LB_ITALICO+', '+LB_SUBLINHADO+', '+LB_TACHADO)
  );

我收到此错误消息:

[错误] FormFontChange.pas(102):预期的常量表达式

此数组的所有行都会发生此错误。

谁能帮我?

提前致谢。

大卫·赫弗南(David Heffernan)

您正在声明类型常量。用于类型化常量的值必须是称为常量表达式的值。可在以下位置找到该文档:http : //docwiki.embarcadero.com/RADStudio/en/Declared_Constants#Typed_Constants

对于此处的示例,相关部分是覆盖记录常量的部分该文档说:

要声明记录常量,请在声明末尾的括号中将每个字段的值指定为fieldName:value,并用分号分隔字段分配。这些值必须用常量表达式表示。

编译器告诉您这LB_NORMAL不是一个常量表达式。我们不知道是什么LB_NORMAL,但是它必须是与type兼容的常量表达式string例如:

const
  LB_NORMAL = 'foo';

就足够了。甚至:

const
  foo = 'foo';
  bar = 'bar';
  LB_NORMAL = foo + bar;

但是,您定义LB_NORMAL,它不是常量表达式。您可能需要参考文档中的常量表达式以了解如何继续。

您似乎隐含在文本中,尽管不清楚,可悲的是您没有显示是什么LB_NORMAL,那LB_NORMAL是一个变量。好吧,变量不是常量表达式。如果LB_NORMAL确实是变量,则还必须声明StylesEvalueArray为变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我不能在CSS Variable中使用rgba?

为什么我不能在我的代码中使用“ balance ”?

为什么我不能在开关案例中使用枚举?

为什么我不能在Swift中使用'object == nil'?

为什么我不能在界面中使用默认方法?

为什么我不能在匿名类中使用<Class> .this?

为什么我不能在列表中使用匿名函数?

为什么我不能在 Spark 中使用 combineByKey?

为什么我不能在Spark的mapPartitions中使用foreach

为什么我不能在Laravel中使用关系方法?

为什么我不能在Swift中使用let in协议?

为什么我不能在Flutter中使用某些图标?

为什么不能在我的Magic Square程序中使用

为什么我不能在Activity中使用FloatingActionButton

为什么我不能在Crontab中使用Python 3?

为什么我不能在grep中使用^ \ s?

为什么我不能在 observable 中使用 switchMap

为什么我不能在 useEffect 中使用 dispatch a thunk?

为什么我不能在blazor中使用JSInterop?

为什么我不能在Python中使用“ +”合并字典?

为什么我不能在App Component中使用MyContext?

为什么我不能在JCreator中使用JavaFX?

为什么我不能在Xampp中使用htaccess?

为什么我不能在Matlab中使用函数readframe

为什么我不能在输入中使用空格字符?

为什么我不能在 yyerror (Yacc) 中使用 yytext

为什么我不能在 django 中使用模板标签

为什么我不能在 Blazor 中使用输入值?

为什么我不能在我的 selenium 脚本中使用 executeScript?