Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-07-2005
nuri nuri is offline
Miembro
NULL
 
Registrado: abr 2005
Posts: 102
Poder: 15
nuri Va por buen camino
Question ¿Cómo puedo saber desde mi aplicación cuándo se abre por primera vez?

Hola de nuevo.
¿Cómo puedo saber desde mi aplicación cuándo se abre por primera vez?.
Es que deseo que cuando se abra mi programa por primera vez se inserte una ruta donde guardar los archivos que se incluyen en la base de datos, tales como imágenes.
Sólo deseo que esto se de una vez y no cada vez que se abra la aplicación, ¿esto se puede hacer?.
Muchas Gracias a quien pueda ayudarme.
Atentamente
Nuri.
Responder Con Cita
  #2  
Antiguo 21-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.713
Poder: 28
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Se me ocurre que hagas uso del registro de Windows. Cuando inicies tu aplicación compruebas si existe determinado valor o determinada clave: si existe es que no es la primera vez que tu aplicación se inicia. ¿Porqué?

Pues porque si la clave o el valor de marras no existe lo crearás en ese momento y en sucesivos inicios de tu aplicación dicha clave o dicho valor existirá, lo que te indicará que tu aplicación ya se inició previamente.
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
  #3  
Antiguo 21-07-2005
zurech zurech is offline
Miembro
NULL
 
Registrado: jul 2005
Posts: 61
Poder: 15
zurech Va por buen camino
Si no quieres tocar el registro casi es mejor que hagas lo mismo pero utilizando un archivo, que creas al iniciar por primera vez
Responder Con Cita
  #4  
Antiguo 21-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.713
Poder: 28
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por zurech
Si no quieres tocar el registro casi es mejor que hagas lo mismo pero utilizando un archivo (...)
¿Porqué es mejor utilizar un archivo que no el registro de Windows? Tengo entendido que es la propia Microsoft la que, a partir de Windows 3.1 ó 95 recomienda usar el Registro de Windows en lugar de archivos Ini, por poner un ejemplo.
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
  #5  
Antiguo 21-07-2005
nuri nuri is offline
Miembro
NULL
 
Registrado: abr 2005
Posts: 102
Poder: 15
nuri Va por buen camino
Unhappy

Gracias por las respuestas.
Lo siento, pero es que estoy un poco perdida, ¿cómo puedo crear un archivo la primera vez que inicio mi programa?, ¿desde la aplicación lo puedo hacer? si es así desde qué evento?.
Muchas gracias de nuevo.
Atentamente
Nuri
Responder Con Cita
  #6  
Antiguo 21-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.713
Poder: 28
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

A ver qué puede decirte esta "cosa" que me ha salido a bote pronto:

Código Delphi [-]
 unit UfrmPrincipal;
 
 interface
 
 uses
   Windows, Forms, SysUtils,
   Classes, Registry, Dialogs;
 
 type
   TfrmPrincipal = class(TForm)
     procedure FormCreate(Sender: TObject);
   private
     function PrimerInicio(usarRegistro: boolean) : boolean;
   public
   end;
 
 var
   frmPrincipal: TfrmPrincipal;
 
 implementation
 
 {$R *.dfm}
 
 resourcestring
   rsClaveInicio   = 'SOFTWARE\Tu programa\Inicio';
   rsArchivoInicio = 'inicio';
 
 procedure TfrmPrincipal.FormCreate(Sender: TObject);
 begin
   if PrimerInicio(false) then
   begin
     ShowMessage('Es el primer inicio del programa');
     {...}
   end
   else
   begin
     ShowMessage('NO es el primer inicio del programa');
     {...}
   end;
 end;
 
 function TfrmPrincipal.PrimerInicio(usarRegistro: boolean) : boolean;
 var
   dir: string;
   reg: TRegistry;
 begin
   if usarRegistro then
   begin
     reg := TRegistry.Create;
     try
       with reg do begin
         RootKey := HKEY_CURRENT_USER;
         Result := not KeyExists(rsClaveInicio);
         if Result then CreateKey(rsClaveInicio);
       end;
     finally
       reg.Free;
     end;
   end
   else
   begin
     dir := ExtractFilePath(ParamStr(0));
     Result := not FileExists(dir + rsArchivoInicio);
     if Result then TFileStream.Create(dir + rsArchivoInicio, fmCreate);
   end;
 end;
 
 end.
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
  #7  
Antiguo 21-07-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Registrado
NULL
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 19
vtdeleon Va por buen camino
Saludos

Una Curiosidad, Si PrimerInicio(false) le asignas falso nunca entrara a
Código Delphi [-]
 var
     dir: string;
     reg: TRegistry;
   begin
     if usarRegistro then
     begin
       reg := TRegistry.Create;
       try
         with reg do begin
           RootKey := HKEY_CURRENT_USER;
           Result := not KeyExists(rsClaveInicio);
           if Result then CreateKey(rsClaveInicio);
         end;
       finally
         reg.Free;
       end;
     end
O veo mal

Última edición por vtdeleon fecha: 21-07-2005 a las 13:56:15.
Responder Con Cita
  #8  
Antiguo 21-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.713
Poder: 28
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No; no ves mal vtdeleon. No entrará a lo que dices, pero para eso está lo que sigue... o sea:

Código Delphi [-]
 else // usarRegistro = false;
 begin
   dir := ExtractFilePath(ParamStr(0));
   Result := not FileExists(dir + rsArchivoInicio);
   if Result then TFileStream.Create(dir + rsArchivoInicio, fmCreate);
 end;
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 22:01:02.


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