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 21-11-2003
Raptor Raptor is offline
No confirmado
 
Registrado: jul 2003
Ubicación: Santo Domingo R.D.
Posts: 105
Poder: 0
Raptor Va por buen camino
Question Como usar el ApplicationEvents ?

hola chicos como estan espero que bien..

bueno mi pregunta como dice arriba
Como usar el ApplicationEvents ?

solo me interesa para capturar los errores
que no recuerdo como se hace
ya se que se debe de poner en el menu principal para captura todos los errores y usar el enventos

ApplicationEvents1Exception


gracias de antemano




---[Dar es mejor que recibir]--
Responder Con Cita
  #2  
Antiguo 21-11-2003
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 22
Descendents Va por buen camino
En el evento on exception del componente le pones el código

Te tiene que quedar mas o menos asi:

procedure TForm1.ApplicationEvents1Exception(Sender: TObject;
E: Exception);
begin
showmessage('Error en el sistema');
end;

Un saludo
Responder Con Cita
  #3  
Antiguo 21-11-2003
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 22
Descendents Va por buen camino
Que por cierto,me olvide

Yo no uso el componente, y capturo los errore igual.
Hago lo siguiente.

//En el formulario Principal pongo:
procedure TForm1.FormCreate(Sender: TObject);
begin
application.OnException := ControlErrores;
end;


//Que este código me llama a este procedimiento
procedure Tform1.ControlErrores(Sender: TObject;E:exception);
begin
showmessage('Error');
end;

Más saludos ;p
Responder Con Cita
  #4  
Antiguo 21-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
El TApplicationEvents no es mas que una clase heredada de TComponent (para que la podamos poner visualmente), que captura todos los eventos del TApplication. Esta clase seguramente ha nacido por la popularidad del TAppEvents de las RxLibs.
Si quieres capturar todos los errores no controlados de tu aplicación, tienes utilizar una de las clases que he nombrado anteriormente, teniendo en cuenta que no funcionará hasta que este se cree, y dejará de funcionar cuando esta se libere. Así que si lo pones en tu menú principal, pero antes de crear el form que contiene el menú creas un DataModule y conectas tu aplicación con tu servidor de base de datos, los errores que este proceso produzca, no serán capturados por el TApplicationEnvent, precisamente porque no se ha creado. Lo que he dicho no creo que sea nada novedoso, lo que quiero poner en claro es que si verdaderamente quieres tener un evento que capture todos los errores de la aplicación, debes tener en cuenta el orden de creación de tus clases, y:
Cita:
OnException only handles exceptions that occur during message processing. Exceptions that occur before or after the execution of the application’s Run method do not generate OnException events.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 21-11-2003
Raptor Raptor is offline
No confirmado
 
Registrado: jul 2003
Ubicación: Santo Domingo R.D.
Posts: 105
Poder: 0
Raptor Va por buen camino
Gracias por responder tan rapido, son mejores que lo tipos de las peliculas del oeste.

pero realmente lo que quiero es algo parecido a esto
saber cual es el error con componente y luego desplegar mensaje

con este ejemplo tendria que copiarlos muchas veces mientras que con el componentes seria una sola vez ... gracias


try
Vl_Produccion := Trunc((Table1Logrado.value / Table1Objetivo.value) * 100);
except
on E: EConvertError do
begin {1}
Vl_Produccion :=0;
ShowMessage(format('El campo Objetivo es Igual a 0 para la Tarjeta ====> : %s',[Table1Tarjeta.Value]));
end; {1}

on E: EZeroDivide do
begin
Vl_Produccion :=0;
ShowMessage(format('El campo Objetivo es Igual a 0 para la Tarjeta ====> : %s',[Table1Tarjeta.Value]));
end;

on E: EInvalidOp do
begin
Vl_Produccion :=0;
ShowMessage('Usted esta realizando una operación no valida '+CRLF+'Revisar valor de : Objetivo y/o Logrado no pueden ser igual a 0');
exit;
end;
end; {try except}



--[Dar es mejor que recibir]--
Responder Con Cita
  #6  
Antiguo 21-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Pues en este caso, yo preferiría hacer una validación previa!

Código:
  if Table1Objetivo.value = 0 Then
    raise Exception.Create('El campo obj....') {O Un ShowMessage}

  ...

  Vl_Produccion := Trunc((Table1Logrado.value / Table1Objetivo.value) * 100);
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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 08:07:07.


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