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 07-06-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Cambiar el caption de un boton segun el registro

Buenas a tod@s!! Pues bien como dice el titulo me gustaria cambiar el caption de un boton segun el registro. Explico:
Tengo una tabla clientes y un campo es Fecha_Baja.
Me gustaria que si el cliente que esta mostrando en ese momento tiene fecha_baja nula que me muestre en el caption Baja sino que me muestre Alta.
El codigo que tengo hecho lo he puesto en el afterSroll:

Código Delphi [-]
procedure TDM.TblClientesAfterScroll(DataSet: TDataSet);
begin
  if TblCientessFecha_baja.Value = null then
    FrmClientes.Btnbaja.Caption := 'Baja'
  else
    FrmClientes.Btnbaja.Caption := 'Alta';
end;

Con este codigo me da un error: 'Acces violation at address 058113E8 in module project.exe. Read of address 0000033C'

Me muestra el error este pero la ejecucion sigue, pero el caption me lo muestra mal. Siempre muestra Alta

Los datos los muestro con dbedits y utilizo TTables. Puede ser que sea por el TTable el error?

Si alguien me puede ayudar gracias de antemano.
Responder Con Cita
  #2  
Antiguo 07-06-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
creo recordar, te hablo de memoria, que es mejor que lo hagas en el OnDataChange del DataSource asociado a esa tabla, así al cambiar de registro se lanzará

También te recomiendo que los valores sean 0 y 1, o algo así, no "null".

Código:
if tbClientesFechaBaja.AsInteger=1 then
    btBoton.Caption := 'Alta'
else
    btBoton.Caption := 'Baja';
En cuanto al error ese, debe ser de otra cosa.
Responder Con Cita
  #3  
Antiguo 07-06-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Otra forma de verificar si un campo es nulo:

Código Delphi [-]
procedure TDM.TblClientesAfterScroll(DataSet: TDataSet);
begin
  if TblCientessFecha_baja.IsNull then
    FrmClientes.Btnbaja.Caption := 'Baja'
  else
    FrmClientes.Btnbaja.Caption := 'Alta';
end;
Responder Con Cita
  #4  
Antiguo 07-06-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Thumbs up

Gracias por contestar tan rapido. Ahora si que me lo hace bien, el problema es que me sigue mostrando el error ese y no se porque. Si quito el codigo no me muestra el error. Si se te ocurre algo ....
Muchas Gracias de todas formas
Responder Con Cita
  #5  
Antiguo 07-06-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por nenufer
Gracias por contestar tan rapido. Ahora si que me lo hace bien, el problema es que me sigue mostrando el error ese y no se porque. Si quito el codigo no me muestra el error. Si se te ocurre algo ....
Muchas Gracias de todas formas
¿qué parte del código quitas y no te sale el error?
Responder Con Cita
  #6  
Antiguo 07-06-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Perdon. La parte del evento OnDataChange del DataSource asociado a esa tabla

Código Delphi [-]
  if TblCientessFecha_baja.Value = 0 then
    FrmClientes.Btnbaja.Caption := 'Baja'
  else
    FrmClientes.Btnbaja.Caption := 'Alta';

Si pongo esto es cuanod me sale el error y si no lo pongo,claro,no me sale el error.
para que no me salga el error tengo que hacer un try except e ir a tools/debuggerOptions/languageExceptions/Stop on delphi exception y desactivarlo. Pero claro si esto lo activo me muestra el error.

Última edición por nenufer fecha: 07-06-2006 a las 23:23:23.
Responder Con Cita
  #7  
Antiguo 07-06-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
pero existe fecha_baja en tbclientes? y está abierta la tabla, base de datos, etc ???
Responder Con Cita
  #8  
Antiguo 08-06-2006
nenufer nenufer is offline
Miembro
 
Registrado: dic 2005
Posts: 90
Poder: 19
nenufer Va por buen camino
Si, esta todo bien. Utilizo tablas paradox y las abro todas con un procedimiento. Aunque me muestra este mensaje luego puedo seguir con la ejecucion y me lo hace bien. El problema es

Cita:
para que no me salga el error tengo que hacer un try except e ir a tools/debuggerOptions/languageExceptions/Stop on delphi exception y desactivarlo. Pero claro si esto lo activo me muestra el error.
Y era por si se podia solucionar el error sin tener que recurrir a esto.

Si tengo que utilizar esto, bueno no pasa nada. Pero era por saber si se podia quitar.

Muchas gracias por tu ayuda.
Responder Con Cita
  #9  
Antiguo 08-06-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Bueno, puede que no sea el mismo caso, pero yo siempre que tengo que acdeder al valor de una tabla primero compruebo que la tabla tiene datos, así me ahorro determinados sustos.
Código Delphi [-]
if TblCientess.IsEmpty then
 // Lo que sea
else
 // Tu código
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
Cambiar el Caption de un Form en tiempo de ejecucion kikodelphi OOP 5 14-01-2012 22:54:22
Cambiar título/caption de un programa Casimiro Notevi Varios 3 22-10-2005 23:03:06
Cambiar de color una fila de un Dbgrid segun una condicion... hook Varios 5 12-07-2005 23:40:36
cambiar color de caption al presionar unko! OOP 4 13-03-2005 17:30:33
Repetir registro segun valor de un campo yusnerqui SQL 2 13-03-2005 02:14:40


La franja horaria es GMT +2. Ahora son las 17:30:32.


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