Hmmmm... Parece ser un buen secreto, no sé si darlo gratis...
En fin, la cosa es así:
[1] Tener instalado el CnWizards, claro.
[2] Vas "Script Wizard\Script Window".
[3] Aparece una ventanita. Se hace click en "new". Esto abre una ventana en el IDE de Delphi.
[4] Uno escribe el código correspondiente.
Código Delphi
[-]
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
var Lineas: TStringList;
begin
Lineas:= TStringList.Create;
try
Lineas.Add('const FechaCompilacion = ''' + FormatDatetime('dd/mm/yyyy', Now) + ''';');
Lineas.Add('const HoraCompilacion = ''' + FormatDatetime('hh:nn', Now) + ''';');
Lineas.SaveToFile('C:\Delphi\Utils\FechaCompilacion.inc');
finally
Lineas.Free;
end;
y lo guardás en cualquier lado.
[5] Vas a "Script Wizard\Script Library". La ventana que aparece te muestra todos los scripts que tengas declarados a la izquierda (probablemente no tengas ninguno).
[6] Hacés click en "Add", le ponés algún nombre. Elegís el archivo que acabás de guardar en la TextBox "Filename".
[7] Ahora seleccionás fmBeforeCompile en el Treeview de la derecha. Para que el script se corra antes de compilar.
[8] Finalmente agregás un $I en tu código para importar el archivo que tiene las constantes:
Código Delphi
[-]
unit Unit1;
type TForm1 = class(TForm)
[...]
end
implementation
{$R *.res}
{$I 'C:\Delphi\Utils\FechaCompilacion.inc'}
procedure TForm1.OnCreate(Sender: TObject);
begin
ShowMessage('Compilado el ' + FechaCompilacion + ' a las ' + HoraCompilacion);
end;
Lógicamente, dado que el $I importa el código directamente donde se declara, hay que ponerlo en un lugar donde se permita declarar constantes.
Y listo. Por supuesto que el script se ejecuta cada vez que se compila cualquier proyecto, así que con cualquier cosa uno sobreescribe el archivo con las constantes. Afortunadamente resulta irrelevante ya que se usa únicamente para "leer" la hora y la fecha.
¿Sé entiende todo esto? El que no entiende, pues pregunte.