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 15-02-2008
JarLem JarLem is offline
Miembro
 
Registrado: sep 2007
Posts: 15
Poder: 0
JarLem Va por buen camino
Activar y desactivar evento BeforePost

Hola Compañeros del foro...

Tengo un problema con un IBDataSet, me explico, el IBDataSet tiene un evento BeforePost en este evento hago unas validaciones para garantizar la correcta entrada de datos, todo va bien en este sentido, el problema suscede cuando modifico este evento desde un procedure que tengo para una accion en particular en la lo tengo que desactivar.

El procedure es el siguiente:
Código Delphi [-]
procedure TDataModule.Cambio;
begin
      IBDataSet1.BeforePost := Nil;
      IBDataSet1.Edit;
      IBDataSet1.FieldByName('CAMPO_1').Value := IBQuery.FieldByName('CAMPO_1').Value;
      IBDataSet1.Post;
      IBDataSet1.BeforePost := IBDataSet1.BeforePost; // Esta linea aparentemente no hace nada
end;
Cuando se ejecuta este procedure por primera vez realiza lo que se desea, pero cuando intento guardar datos en el IBDataSet ya no se dispara el evento BeforePost de este y no puedo hacer las validaciones descritas, la unica manera que he encontrado para solucionarlo es salir y volver a entrar en la aplicación sin ejecutar el procedure, pero obviamente esto no es practico.

Creo que no es dificil la solución, pero no la se y acudo a ustedes en busca de ayuda ...

Utilizo Delphi 7 y Firebird 2.0

JarLem
Responder Con Cita
  #2  
Antiguo 15-02-2008
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Código Delphi [-]
procedure TDataModule.Cambio;
begin
  IBDataSet1.BeforePost := Nil;
  IBDataSet1.Edit;
  IBDataSet1.FieldByName('CAMPO_1').Value := IBQuery.FieldByName('CAMPO_1').Value;
  IBDataSet1.Post;
  IBDataSet1.BeforePost := IBDataSet1BeforePost; 
end;
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 15-02-2008
JarLem JarLem is offline
Miembro
 
Registrado: sep 2007
Posts: 15
Poder: 0
JarLem Va por buen camino
Talking Listo!!

Gracias por la respuesta no se como se me paso, si bien la solución es muy trivial no la sabia y el compilador no me daba ningun error, ahora puedo seguir con mi proyecto

De antemano muchisimas gracias ...

JarLem
Responder Con Cita
  #4  
Antiguo 15-02-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

¡Hola!

Cita:
Empezado por JarLem Ver Mensaje
...y el compilador no me daba ningun error...
Te comento que el compilador no te reporta ningún error porque es perfectamente válido asignar a un propiedad de lectura y escritura el mismo valor que ésta ya tiene (en ese caso era Nil). Cabe mencionar que los eventos también son propiedades, sólo que sus valores son de tipo procedimental, es decir, guardan la dirección de memoria donde se encuentra una rutina. A esas rutinas métodos, asignadas a propiedades eventos, se les llama manejadores de eventos. En el ejemplo dado, el método IBDataSet1BeforePost es un manejador de evento.

Saludos.

Al González.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con Insert dentro de Evento BeforePost Jvilomar Conexión con bases de datos 2 21-11-2007 16:31:12
Activar/Desactivar Triggers Delphius Firebird e Interbase 8 16-04-2007 05:51:16
Activar/Desactivar hijos en TTreeView mez OOP 6 08-02-2006 23:07:03
activar y desactivar negrita. rebollo75 Impresión 3 28-01-2005 10:25:04
Activar y Desactivar un conexion de red Ney API de Windows 1 30-01-2004 19:28:12


La franja horaria es GMT +2. Ahora son las 14:10:05.


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