如何在EXE编译时生成一个常量值

怎么在EXE编译时生成一个常量值?
程序中有个常量,我想让这个值为编译EXE的日期
比如

const
  EXEDATE = 20121226;

这样我就不用编译时去修改了
我是寻求一种解决方案,有点类似CnPack组件中的源码模板专家的意思

------解决方案--------------------
编写Delphi IDE扩展功能,
Uses ToolsAPI;增加一个IOTAIDENotifier.BeforeCompile接口,增加到接口链中,在方法中写代码定位这个常量,替换值并保存文件,这个功能没写过,只是感觉可以这样.
Tools API只是提供IDE的扩展,没得编译器的扩展,功能不强,只是让用户可以自行扩展或者替换编辑器的功能而以.
如果可以扩展编译器的功能,那这个就很好实现了,比如定义成: xxx = #Date()#;然后捕捉编译错误,修补该错误后继续编译,那就可以扩展很多东西了,可惜不支持,至少我研究的结果是不支持.
------解决方案--------------------
如果BeforeCompile能支持修改ide里即将编译的代码,也可以了:
在代码里这么写:
pushStack({ToolApi#__functionname__#[}'Btn1OnClick'{]#ToolApi});//可以热键创建

编译前自动把“__functionname__#[}'xxxx'{]#”里的xxxx替换为正确的函数名,如:Btn1OnClick
------解决方案--------------------
这个没有很好的方法,比较标准的方法是建立一个批处理来build项目,批处理中把当前日期写到一个.inc文件(就是文本文件)中,在项目中{$I 'xxx.inc'}就可以使用.inc中定义的常量、变量了。