FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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]-- |
#2
|
|||
|
|||
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 |
#3
|
|||
|
|||
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 |
#4
|
||||
|
||||
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:
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#5
|
|||
|
|||
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]-- |
#6
|
||||
|
||||
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);
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
|
|
|