Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   COmo genero un mensaje antes de un Sysutils.Abort (https://www.clubdelphi.com/foros/showthread.php?t=18417)

Bitbanner 11-02-2005 09:44:58

COmo genero un mensaje antes de un Sysutils.Abort
 
Hola estoy con una base de datos acces y lo que quiero que me controle es cuando no se ha metido un campo requerido, ya he metido en BeforePost el sysutils.abort pero me falta mostrar un mensaje de error para el usuario.


gracias

delphi.com.ar 11-02-2005 13:40:39

En lugar de hacer un Abort (Que es una exception silenciosa) hacé un raise de un Exception.

Saludos!

Bitbanner 13-02-2005 12:04:18

ejemplo por favor
 
me puedes poner un ejemplo por favor no se como hacerlo, lo que yo tengo puesto es esto:



sysutils.Exception.Create('Debes de rellenar todos los campos en rojo');

y lo tengo puesto en la table en el evento BeforePost.


GRACIAS

Lepe 13-02-2005 16:05:18

De acuerdo, creas la excepción, solo falta lanzarla al mercado laboral ;)

raise Exception.Create("Rellena todos los campos en rojo ");

saludos

Bitbanner 13-02-2005 23:24:19

problema
 
ya lo he echo pero no mr sale nada de nadsa lo tengo de esta manera:

En el BeforePost de la table tengo puesto:

If (DataMopduleModuloDatos.AdoTableClientesNombre.IsNull = True) then
Begin
sysutils.exception.create ('debes de rellenar los rojos');
end;

GRACIAS Y PERDONAR MI INGENUIDAD

roman 14-02-2005 00:38:40

Cita:

Empezado por Bitbanner
ya lo he echo pero no mr sale nada de nadsa

No, no lo has hecho. Vuelve a leer con cuidado el mensaje de Lepe ;)

// Saludos

Bitbanner 14-02-2005 01:18:37

ok lo siento
 
ya me sale pero me manda un erro y la aplicacion se para y tengo que iniciarla lo que me gustaria que saliera es un mensaje como si fuera de un Showmessage o un MessageDlg si no es mucho pedir y perdonarme !!!:(:(

roman 14-02-2005 02:24:23

Si estás corriendo la aplicación desde el IDE entonces estás viendo el comportamiento normal: la aplicación se detiene en la línea donde ocurre la excepción y al continuar aparece tu mensaje. Esto no sucede si corres la aplicación independiente. También puedes ir al menú Tools|Debugger Options y en la ficha Language exceptions desmarcar la opción Stop on Delphi Exceptions para que no se detenga la aplicación al ejecutarla desde el IDE.

Si éste no es el problema entonces tendrás que explicar con más precisión.

// Saludos

Bitbanner 15-02-2005 12:58:47

ok, perooo....
 
En el BeforePost de la table tengo puesto:

If (DataMopduleModuloDatos.AdoTableClientesNombre.IsNull = True) then
Begin
raise exception.create ('debes de rellenar los rojos');
end;


Pero lo que yo quiero decir es que si podria hacer esto para que me mostrara unmensaje como este:


En el BeforePost de la table tengo puesto:

If (DataMopduleModuloDatos.AdoTableClientesNombre.IsNull = True) then
Begin
ShowMessage ('Debes de rellenar los rojos')
raise exception.create;
end;

marto 15-02-2005 13:10:36

Código Delphi [-]
If (DataMopduleModuloDatos.AdoTableClientesNombre.IsNull = True) then
Begin
  ShowMessage ('Debes de rellenar los rojos')
  Abort;
end;

Lepe 16-02-2005 10:34:53

Supongo que es cuestion de gusto y criterio, yo prefiero un Exception, ¿Por qué?

Un usuario ve un showmessage y directamente pulsa en el aceptar, tienen tal vicio con el raton que ni si quiera lo lee.

Ve el simbolo de error, se asusta, lo lee, y despues pulsa aceptar.;)

delphi.com.ar 16-02-2005 13:12:25

Cita:

Empezado por Lepe
Un usuario ve un showmessage y directamente pulsa en el aceptar, tienen tal vicio con el raton que ni si quiera lo lee.

Si se trata de un sistema empresarial, creo que debemos "educar" al usuario a nuestro gusto. Las alertas son alertas y los errores son errores.

Saludos!

roman 16-02-2005 14:44:20

Cita:

Empezado por delphi.com.ar
Si se trata de un sistema empresarial, creo que debemos "educar" al usuario a nuestro gusto. Las alertas son alertas y los errores son errores.

¿Y en este caso qué es?

:D

// Saludos

delphi.com.ar 16-02-2005 14:56:58

Cita:

Empezado por roman
¿Y en este caso qué es?

Yo di dos ejemplos, pero creo que eso se define junto con el análisis inicial del sistema.
¿Nos estamos llendo de tema? :D

roman 16-02-2005 15:08:03

Decía un maestro que una alerta se usa para avisar al usuario de algo que puede ocurrir y un error para avisar de algo que ya ocurrió.

Esto tiene algo de lógica sólo que en este caso depende de cómo se vea. Si la verificación de datos faltantes se hace antes de hacer el post sería una alerta (oye usuario, no has puesto un valor y el servidor no lo va a aceptar) pero si la verificación se hace depués del post entonces sería un error (oye usuario, el servidor dice que falta un dato y ya protestó).´

Así que si nos guiamos por este estilo, en este caso tendría que ser una alerta. Lo que pasa es que en realidad el usuario no tiene idea de si la verificación se hace antes o después.

Por otra parte, el uso del abort después del ShowMessage, tal como lo propone marto, pues no es más que una excepción disfrazada de mensaje.

Así que en realidad todo es cuestión de gustos y mejor qe le den una taza de café al usuario para que se despabile.

:D

// Saludos

marcoszorrilla 16-02-2005 15:15:20

Lo lógico, a mi juicio, es prevenir al usuario de la omisión o inconsistencia de los datos para que no se produzca el error.

Y el usuario aunque no distinga "los galgos de los podencos", si apreciará un sistema que le avise con tiempo de sus incongruencias.

En consecuencia siempre se debe advertir al usuario, y lo que para nosotros es una alerta y se diferencia claramente de un error puede ser la misma diferencia que existe entre un error y una errata para quien sea capaz de distinguir el matiz.

Un Saludo.

Enan0 16-02-2005 16:11:16

Cita:

Empezado por Lepe
Supongo que es cuestion de gusto y criterio, yo prefiero un Exception, ¿Por qué?

Un usuario ve un showmessage y directamente pulsa en el aceptar, tienen tal vicio con el raton que ni si quiera lo lee.

Ve el simbolo de error, se asusta, lo lee, y despues pulsa aceptar.;)

Bueno entonces USA
Código:

Código Delphi [-]

 Application.MessageBox('mensaje','Titulo',MB_yes+MB_ICONERROR);

y con eso tenes el error con icono.. verifica que el campo no este nulo y listo

roman 16-02-2005 16:37:12

Cita:

Empezado por Enan0
Código Delphi [-]
 Application.MessageBox('mensaje','Titulo',MB_yes+MB_ICONERROR);

y con eso tenes el error con icono


Claro; pero, al menos yo, entre un ShowMessage con MB_ICONERROR seguido de un abort y un Exception no veo diferencia así que en tal caso me quedo con Exception.

// Saludos

Enan0 16-02-2005 17:32:00

si roman estas bien, pero si no queres generar una excesión bueno .. ahi esta otra posibilidad :D

roman 16-02-2005 17:41:58

Cita:

Empezado por Enan0
pero si no queres generar una excesión bueno .. ahi esta otra posibilidad :D

Es que el abort es una excepción y de hecho de fuerza requieres la excepción para interrumpir el proceso. De lo contrario se hace el post y el servidor mandará el error.

// Saludos


La franja horaria es GMT +2. Ahora son las 09:10:22.

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