Club Delphi  
    Paypal   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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-01-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
yo lo pondría en el evento "OnCreate" de tu formulario principal y la primera instrucción, sería la inicialización del componente. Revisa la ayuda y los "demos" que hay sobre ese componente, en ellos se explica bastante bien como proteger la aplicación por fechas o por número de serie.
__________________

Responder Con Cita
  #2  
Antiguo 08-01-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Aparte de lo dicho por el amigo Contra, echa un vistazo a este archivo "DPR":

Código Delphi [-]
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  URegisterForm in 'URegisterForm.pas' {RegisterForm};

{$R *.res}

begin
  Application.Initialize;

  with TRegisterForm.Create(nil) do
  try
    ShowModal();
  finally
    Free();
  end;

  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Como ves, se trata del archivo "DPR" de un proyecto "vacío" (aunque ya existe el formulario "Form1", que, es el principal) al que se le ha añadido otro formulario. Pues bien, antes de crear el formulario principal de la aplicación, como puedes ver, podemos crear y utilizar otro formulario, u otro componente. No sé si con esto ya coges la idea o no.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 08-01-2009
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 20
vejerf Va por buen camino
Gracias a los dos,
Por una parte ya estaba trabajando en la solución de ContraVeneno porque me parecía lo más lógico, pero no tenía muy claro si funcionaría así o no por que el Registro también era un formulario. Por otra parte creo que entiendo tu idea Dec, aunque no sabía que se podía incluir código en el DPR. Creo que te aportación ha sido muy valiosa.
Ya por último y con la solución de ContraVeneno casi implementada me he encontrado con un problema. Si la aplicación está registrada va bien. Si se registra tb va bien. El problema es que no se tenga un número de serie válido y la aplicación deba finalizarse. En este caso debe terminarse sin dar ningún mensaje de aviso cosa que hago en el evento OnCloseQuery. ¿Hay alguna forma de finalizar la aplicación sin pasar por este evento?
Gracias de nuevo!!!
__________________
"Patientia et constantia taelecum"
Responder Con Cita
  #4  
Antiguo 08-01-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
¿Hay alguna forma de finalizar la aplicación sin pasar por este evento?
Ya lo creo:

Código Delphi [-]
Application.Terminate();

Respecto del archivo "DPR", piensa que una aplicación de consola sólo cuenta con este archivo. Delphi nos "abstrae" del mismo, trabajando directamente con formularios, pero, como has visto, estos formularios se crean en el archivo "DPR", es ahí donde la aplicación se pone en marcha, y es perfectamente posible programar lo que se necesite ahí mismo. Y ya no digo más, que, luego todo se sabe.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 08-01-2009
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 20
vejerf Va por buen camino
Joer macho es q sabeis de to!!! jeje
Gracias de nuevo... aunq prometo seguir dando más la lata
__________________
"Patientia et constantia taelecum"
Responder Con Cita
  #6  
Antiguo 08-01-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
Revisa el demo sobre el componente que estas utilizando, ahí viene como comprobar las fechas de registro, el ID del hardware, el número de serie, etc... ese componente tiene un evento para cada situación. En otras palabras, en lugar de manejarlo en el OnCloseQuery, lo podrías manejar en el OnExpiration o en el OnInvalidSerialNumber, que son eventos del componente.
__________________

Responder Con Cita
  #7  
Antiguo 08-01-2009
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 vejerf
El problema es que no se tenga un número de serie válido y la aplicación deba finalizarse
Por esto mismo, a mi me parece más adecuado lo que plantea dec porque, ¿para qué construir un formulario (el principal) si al final cabe la posibilidad de que no lo necesitemos?

Lo que pasa es que, dado que se trata de un componente, lo más cómodo es insertarlo en algún lugar, y lo más a la mano es el formulario principal; pero también puedes insertarlo en el formulario de registro y usar ahí los eventos que te indica ContraVeneno.

// Saludos
Responder Con Cita
  #8  
Antiguo 08-01-2009
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 20
vejerf Va por buen camino
Me parece muy buena tu idea Roman... así que intentaré llevarla a cabo. Si me encuentro con algún problemilla lo mismo voy variando los planes .
Gracias a todos!!!
__________________
"Patientia et constantia taelecum"
Responder Con Cita
  #9  
Antiguo 09-01-2009
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 20
vejerf Va por buen camino
Hola de nuevo,
En una primera prueba de registro todo funciona perfectamente tal y como yo quería. La solución de incluir el formulario de registro en el .dpr antes de crear cualquier otro formulario me funciona muy bien.
Gracias a todos por vuestra inestimable e impagable ayuda
__________________
"Patientia et constantia taelecum"
Responder Con Cita
  #10  
Antiguo 09-01-2009
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Poder: 20
vejerf Va por buen camino
Pues me he precipitado al decir que todo iba bien. La cosa es que me falla al volver a iniciar la aplicación habiéndome registrado, entonces me vuelve a pedir el nº de serie como si no me hubiera registrado. No sé si el fallo está en la inicializáción del componente o donde. Os dejo el código a ver si veis algo extraño. Creo que en el dpr no está el fallo aunq lo dejo aquí.

Código Delphi [-]
var
  Registrado : Boolean;
  RegistroForm : TRegistroForm;
begin
  Application.Initialize;
  try
    RegistroForm := TRegistroForm.Create(nil);
    Registrado := RegistroForm.mxProtector.IsRegistered;
    if not Registrado then
    begin
      RegistroForm.ShowModal; //Formulario para registrarse en el que podemos o registrarnos o cancelar el registro
      Registrado := RegistroForm.mxProtector.IsRegistered;
      if not Registrado
        Application.Terminate
      else
        //Continuo con la aplicacion
    end
    else
      //Continuo con la aplicación
end;

Gracias.
__________________
"Patientia et constantia taelecum"
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Cómo saber el formato adecuado de los datos para hacer una consulta? Alcolea Varios 3 08-01-2009 08:30:38
Es TDBCtrlGrid el control adecuado para un TPV hibero OOP 1 22-04-2008 08:45:18
Extraer el Nombre y la Organización a la que está registrado Windows Cecil API de Windows 4 22-12-2007 08:56:59
Tipo de dato mas adecuado, para un campo de moneda Chogo Firebird e Interbase 9 08-08-2007 15:03:00
No encuentro el evento adecuado Delfino Conexión con bases de datos 5 24-10-2003 14:19:00


La franja horaria es GMT +2. Ahora son las 01:21:59.


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