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 02-12-2004
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 21
VRO Va por buen camino
Problema con la instruccion Halt

Hola a todos, ¿Qué hay denuevo?,
ya estoy en la ultimísima etapa para acabar la aplicación, ahora lo que estoy haciendo es encontrar la forma correcta (sin que me de error) de permitir que mi aplicación no se ejecute más de una vez simultáneamente y que cuando se intente ejecutar más de una vez me de un mensaje de error y me resture la aplicación anteriormente ejecutada.

Para ello primeramente he utilizado un componente llamado TUsedTimeStop, que con unos pequeños arreglos han conseguido que sirve también para permitir que la aplicaciín se ejecute hasta 40 veces (no simultáneamente) sin que se registre y a la 41 hay que registrar la aplicación.
El código fuente de este componente trae una instrucción que es halt que da un error:

" Este programa ha efectuado una operación no admitida y será interrumpido."

Después he utilizado código encontrado en este foro, que paso a postearlo a continuación:
Código Delphi [-]

procedure TForm1.FormCreate(Sender: TObject);
 var Sem  : THandle;
begin
   
   Sem := CreateSemaphore(nil,0,1,'PROGRAM_NAME');
    if ((Sem <> 0) and (GetLastError = ERROR_ALREADY_EXISTS)) then 
    begin 
    CloseHandle( Sem );
    ShowMessage('This program is already running.'+
          'Este programa ya se está ejecutando...');
    Halt;
end;

Si en vez de halt pongo application.terminate, no me da error pero no se como restaurar la aplicación anterior, es decir, la primera ha ejecutar y me ocurre otra cosa que es como si pegase un pantallazo, es decir, se carga el formulario principal y luego se descarga, es cuestión de segundos pero queda muy feo.

Si alguien pued decirme porque da error el halt y como arreglarlo para que me restaure la plicación en ejecución.

En realidad no se si con esta parrafada de explicación e aclarado mi situación ó lo he empeorado.

De antemano, gracias por prestar su tiempo.

Verónica Ríos.
Responder Con Cita
  #2  
Antiguo 02-12-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por VRO
lo que estoy haciendo es encontrar la forma correcta (sin que me de error) de permitir que mi aplicación no se ejecute más de una vez simultáneamente y que cuando se intente ejecutar más de una vez me de un mensaje de error y me resture la aplicación anteriormente ejecutada.
Si esto es todo lo que quieres no busques más. Usa mi unidad uiapp.pas. Con ella no tienes que hacer nada mas que incluirla en el uses de tu dpr y ella se encarga de todo. Bueno, no manda mensaje pero fácilmente se lo añades al código.

// Saludos
Responder Con Cita
  #3  
Antiguo 02-12-2004
llonigualker llonigualker is offline
Miembro
 
Registrado: jul 2003
Posts: 67
Poder: 21
llonigualker Va por buen camino
o tambien puedes buscar en trucomania que ese caso viene explicado

www.q3.nu/trucomania/
__________________
El que pregunta es tonto durante 5 minutos, el que no pregunta es tonto para toda su vida.
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


La franja horaria es GMT +2. Ahora son las 22:41:49.


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