记录常量可以记录在Delphi 6中的记录吗?

时间:2014-02-08 19:16:25

标签: delphi syntax

我可以像这样定义记录常量:

const
  dialoghdr: DLGTEMPLATE =
    (style: 1; dwExtendedStyle: 2; cdit: 3; x: 4; y: 5; cx: 6; cy: 7);
  dialogitem: DLGITEMTEMPLATE =
    (style: 8; dwExtendedStyle: 9; x: 10; y: 11; cx: 12; cy: 13; id: 14);

我可以定义这样的记录记录:

type
  template = packed record
    header: DLGTEMPLATE;
    item: DLGITEMTEMPLATE;
    end;

虽然编译器会接受这个:

const mytemplate: template = (); // compiles!

有没有办法在()中实际放置常量?像

这样的东西
const mytemplate: template = 
    (header.style: 1; header.dwExtendedStyle: 2; header.cdit: 3...,
     item.style: 8; item.dwExtendedStyle: 9; item.x: 10...);

const mytemplate: template = 
    ((style: 1; dwExtendedStyle: 2; cdit: 3; x: 4; y: 5; cx: 6; cy: 7),
    (style: 8; dwExtendedStyle: 9; x: 10; y: 11; cx: 12; cy: 13; id: 14));

记录常量是否可以记录记录?我使用的是Delphi 6.(我意识到一种解决方法是将模板重新定义为只有单级记录的字段。)

1 个答案:

答案 0 :(得分:5)

是的,这很有可能,你几乎知道该怎么做:

const mytemplate: template =
  (header: (style: 1; dwExtendedStyle: 2; cdit: 3; x: 4; y: 5; cx: 6; cy: 7);
   item: (style: 8; dwExtendedStyle: 9; x: 10; y: 11; cx: 12; cy: 13; id: 14));

您只需在每个“级别”遵循相同的模式。