Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-12-2012
jotaeme jotaeme is offline
Registrado
 
Registrado: mar 2009
Posts: 6
Poder: 0
jotaeme Va por buen camino
Guardar datos de versión de compilación

Hola,

Mi problema es el siguiente: Para compilar un proyecto uso una variable de compilación(define) para cargar unos forms u otros, pero con el mismo nombre de ejecutable, y me gustaría saber con qué define lo he compilado.

Por ejemplo, la aplicación la puedo compilar con el define _MADRID, o bien con el define _BARCELONA, dependiendo del cliente al que vaya destinado, el ejecutable se llama igual 'Aplicacion.exe'. Pues me gustaría saber en cada ejecutable el define con el que lo he compilado, si _Madrid o _Barcelona, para no enviar a un cliente el ejecutable equivocado.

La solución que se me ha ocurrido es que al compilar se guarde en algún campo del VersionInfo el define que he usado, pero no sé como hacerlo.

Uso delphi 5.0, en versiones posteriores se pueden crear distintas configuraciones de compilación, sería otra solución, pero en delphi 5.0 no lo he visto esta opción.

Se os ocurre alguna solución?

Gracias.
Responder Con Cita
  #2  
Antiguo 19-12-2012
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Podrías poner una firma, y asegurarte de que esta aparece en el ejecutable. Por ejemplo se me ocurre que añadas (si no tienes) una ventana "Acerca de..." que muestre información varia (correo de contacto y tal), y que en su módulo pongas algo como:
Código Delphi [-]
CONST
{$IFDEF _MADRID}
    ID = "Oficina Madrid";
{$ENDIF}
{$IFDEF _BARCELONA}
    ID = "Oficina Barcelona";
{$ENDIF}
Luego en el evento "onCreate" asignas esta constante al "Caption" de algún campo de la ventana (si no quieres que se muestre, pues lo ocultas). Así luego sólo tienes que mirar si existe una u otra cadena de texto en el ejecutable y ya lo tienes.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 19-12-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
jotaeme,

Cita:
Empezado por jotaeme
Me gustaría saber en cada ejecutable el define con el que lo he compilado, si _Madrid o _Barcelona, para no enviar a un cliente el ejecutable equivocado
Una alternativa sería:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
   SLApplication : TStringList;
begin
   SLApplication := TStringList.Create;
   {$IFDEF _MADRID}
      SLApplication.Add('Define _Madrid');
      SLApplication.SaveToFile('Application.txt');
   {$ENDIF}
   SLApplication.Free;
end
De igual forma se podría guardar en dicho archivo cualquier otra información de interés sobre la aplicación.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 19-12-2012 a las 15:07:07.
Responder Con Cita
  #4  
Antiguo 20-12-2012
jotaeme jotaeme is offline
Registrado
 
Registrado: mar 2009
Posts: 6
Poder: 0
jotaeme Va por buen camino
Gracias por contestar tan pronto.

Lo de declarar un string constante puede ser una solución. Y lo del fichero auxiliar, aunque también es buena idea, no me sirve, porque tengo que poner el ejecutable en varios repositorios y el fichero txt se puede perder o se me puede olvidar subirlo y ya está el lio montado.

Lo dicho, Gracias.
Responder Con Cita
  #5  
Antiguo 20-12-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
jotaeme,

Cita:
Empezado por jotaeme
Lo del fichero auxiliar, aunque también es buena idea, no me sirve, porque tengo que poner el ejecutable en varios repositorios y el fichero txt se puede perder o se me puede olvidar subirlo y ya está el lio montado
En la solución propuesta el archivo se crea automáticamente cada vez que la aplicación se ejecuta, si la aplicación es puesta por ejemplo en el repositorio Madrid, esta se debe ejecutar una primera vez para crear el archivo de control con la variable que identifica esta localidad y cualquier otro dato de interes. Para efectos visuales el archivo puede tener el mismo nombre del repositorio, lo cual facilitara su revisión y una paridad 1:1 entre el repositorio y la aplicación. Esta idea no excluye la Constante String con el nombre de la localidad, la complementa.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 20-12-2012 a las 17:10:13.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Guardar datos en Base de Datos MySQL knnibal Conexión con bases de datos 6 23-06-2011 15:36:42
Dilema: Versión de Registros/Tuplas en la Base de Datos ¿Como? D-MO Debates 5 29-03-2011 16:03:29
OllyDBG Version 2.0 - Pre-alpha code, Nueva versión de este increible depurador Black_Ocean Noticias 1 16-04-2008 11:51:47
Guardar en 1 base de datos SQL, datos procedentes de 2 tablas distintas adaypr C++ Builder 1 05-09-2006 11:56:33
como puedo hacer para cambiar un archivo de excel con versión 2.1 a versión 8.0 RONPABLO Servers 4 23-01-2006 06:02:38


La franja horaria es GMT +2. Ahora son las 11:58:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi