Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
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 28-01-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.449
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Otra opción que acabo de ver en la web de About.com es que puedes desactivar "temporalmente" el evento OnClick. El efecto sería el comentado en el mensaje anterior.

link.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 28-01-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Arrow

El problema es que el evento OnClick del DBCheckBox se va a ejecutar cuando al navegar por los registros, se haga el cambio de estado, algo asi como un evento OnChange. Eso se puede verificar en el codigo de la VCL del mismo componente, mas concretamente en la clase ancestra del TDBCheckBox.
Cita:
Sacado de la VCL->
Código Delphi [-]
procedure TCustomCheckBox.Click;
begin
  inherited Changed;//<----He aqui el Problema 
  inherited Click;
end;
.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 28-01-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.449
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
En ese caso tal vez se podría combinar con el State del Dataset para verificar que se está modificando el valor y no cargándolo.

Supongo que habrá diferencia de estado cuendo se está navegando a cuando realmente el usuario lo modifica (edita).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 28-01-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
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
Cita:
Empezado por Neftali Ver Mensaje
En ese caso tal vez se podría combinar con el State del Dataset para verificar que se está modificando el valor y no cargándolo.

Supongo que habrá diferencia de estado cuando se está navegando a cuando realmente el usuario lo modifica (edita).
Concuerdo contigo, Germán. Pensando en una solución simple, basta con agregar una condición más al If del manejador de evento.

Código Delphi [-]
procedure TFEdtarPARTESLIN.DBCheckEXTRAClick(Sender: TObject);
begin
  if DBCheckEXTRA.Checked And (ConjuntoDeDatos.State In dsEditModes) then
  begin
    if MessageDlg('Atención !!!!'+#13+#10+''+#13+#10+
       'Se asignarán todas las Horas como Horas Extras.'+#13+#10+''+#13+#10+
       '¿ Desea continuar ?', mtWarning, [mbYes, mbNo], 0) = mrYes then
      CalculaHoras;
  end;
end;

Saludos.

Al González.
Responder Con Cita
  #5  
Antiguo 30-01-2010
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 23
tgsistemas Va por buen camino
Neftali, rgstuamigo y [Al González] gracias por la ayuda

efectivamente el estado del conjunto de datos dispara ese evento así que siguiendo vuestro sabio consejo lo he dejado así :
Código Delphi [-]
  if  (DataSource.State In dsEditModes) then
  begin
    if (DBCheckEXTRA.Checked = True) then
    begin
      if MessageDlg('Atención !!!!'+#13+#10+''+#13+#10+
               'Se asignarán todas las Horas como Horas Extras.'+#13+#10+''+#13+#10+
               '¿ Desea continuar ?', mtWarning, [mbYes, mbNo], 0) = mrYes then
        CalculaHoras;
    end else begin
      if MessageDlg('Atención !!!!'+#13+#10+''+#13+#10+
               'Las Horas dejarán de considerarse como Horas Extras y se distribuirán normalmente.'+#13+#10+''+#13+#10+
               '¿ Desea continuar ?', mtWarning, [mbYes, mbNo], 0) = mrYes then
        CalculaHoras;
    end;
  end;

de esa forma sólo se ejecuta al editar, en función del Checked o Unchecked muestro un mensaje diferente pero ambos pasan por la rutina de distribución de horas.

Muchas Gracias por la ayuda, por mi parte la duda queda resuelta.

Saludos
__________________
Toni | blog
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
duplicar un form para posteriormente modificar solo unos datos Ade Varios 5 21-08-2024 18:51:56
modificar datos con ibx lina maria Conexión con bases de datos 3 01-10-2008 16:34:54
modificar datos con ibquery mozambike Conexión con bases de datos 0 27-09-2008 23:50:47
DBCheckBox para Imprimir emeritos Impresión 9 04-06-2004 18:01:49
Modificar datos de una grid gescoto99 Conexión con bases de datos 7 21-05-2004 03:02:26


La franja horaria es GMT +2. Ahora son las 05:15:43.


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