Ver Mensaje Individual
  #16  
Antiguo 28-12-2009
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Reputación: 17
Lord Delfos Va por buen camino
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.
Responder Con Cita