Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Intentando Comprobar Los Valores De Los Controles
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Intentando Comprobar Los Valores De Los Controles 
 
Hola a todos.

Mis conocimientos en programación son bastane básicos y los utilizo a nivel personal. Hasta ahora programaba con Visual Basic y en mi intento de pasarme al software libre gambas ha sido un factor determinante. La cuestión es la siguiente: en VB utilizaba la siguiente función que recorre todos los controles del formulario y comprueba que tiene valor, de no ser así avisa. El problema es que en gambas no soy capaz de que funcione. ¿Alguien conoce alguna función que compruebe de forma genérica los valores de los controles?.

FUNCTION CamposObligatorios() AS Boolean

     DIM ctl AS Control
    
     CamposObligatorios = FALSE
    
     FOR EACH ctl IN ME.Controls
          IF InStr(ctl.Tag, "Campo obligatorio") <> 0 THEN
               IF IsNull(ctl) OR ctl = vbNullString OR ctl = 0 THEN
                   ctl.BackColor = RGB(255, 255, 196)
                   CamposObligatorios = TRUE
               ELSE
                   ctl.BackColor = RGB(255, 255, 255)
               END IF
          END IF
     NEXT

END FUNCTION
 


Saludos y muchas gracias.
 



 
lumbanico - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Intentando Comprobar Los Valores De Los Controles 
 
¿Te refieres a esto?
PRIVATE SUB prueba
  DIM C AS control
  
  FOR EACH c IN ME.Controls
    IF c.Tag = InStr(c.Tag, "Campo obligatorio") <> 0  THEN
         c.BackColor = IIf(c.text, Color.White, Color.LightBackground)            
    ENDIF
  NEXT
  
END


Pero te sugiero que en vez de hacer esto lo que hagas es una rutina que compruebe que los valores introducidos son válidos. No vale con que metan una fecha, debe ser fecha válida y si hay un desde y un hasta el desde debe ser anterior a hasta y cosas así.

En esa comprobación una de las cosas que miras es que el control tenga un contenido adecuado no solo que tenga algo o no.

Otra cosa (por dar ideas) es que en vez de utilizar el tag te crees una propiedad a tu medida que sea de tipo boleano. Te pongo un ejemplo en el que construyo un textbox que tiene además una propiedad "Obligatorio" que puede valer true o false.

La clase NuevoTextBox
inherits textbox 'crear un control nuevo basado en textbox con todas sus cualidades
private $Obligatorio as boolean 'variable que usaré para trabajar con esta propiedad dentro de la clase
property Obligatorio as boolean 'al crear la propiedad se crean los métodos read y write que te pongo seguido
private sub Obligatorio_Read() 'esta rutina devuelve lo que valga la propiedad
return $Obligatorio
end
private sub Obligatorio_Write(value as boolean) 'esta rutina acepta el valor que le das a la propiedad
$Obligatorio=value
end
 


Y con esta clase presente en tu proyecto ahora lo que haces cuando quieres usarlo es
public sub form_open()
Dim T as new NuevoTexBox(me) 'me es el formulario donde quieres crearlo
t.top=100
t.left=100
t.text="prueba"
t.width=200
t.height=80
t.Obligatorio=true 'aquí está tu nueva propiedad.
end


Como ves crearte propiedades "a medida" es muy simple y es una gran funcionalidad. Por ejemplo te puedes crear un textarea que tenga propiedad lenght,
 

 
 



 
última edición por soplo el Domingo, 27 Diciembre 2009, 21:24; editado 1 vez 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Intentando Comprobar Los Valores De Los Controles 
 
yo uso la version 2.18, y probando el codigo me encontre con varios errores.

1) la propiedad tag por defecto es de tipo string, por lo tanto >>> InStr(ctl.Tag, "Campo obligatorio") <> "", vos pusiste : <> 0
2) me generaba un error en las lineas donde figuraba  ctl.BackColor = RGB (X,X,X) , tenes que anteponer la palabra "Color." a RGB,  te deberia quedar así : ctl.BackColor = Color.RGB (X,X,X)
3) el otro mensaje de error me lo daba en el if en  ctl = vbNullString , probá con ctl=null

saludos
 



 
nrcefe - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Intentando Comprobar Los Valores De Los Controles 
 
Hola y gracias por la rápida respuesta, pero el código que has posteado no funciona. Me indica que para el control no se conoce la propiedad "Text" - "Unknown symbol 'Text' in class 'Control'" -. ¿ Lo habéis probado vosotros ?.

Yo estoy trabajando con gambas 2.18 bajo Ubuntu 9.10.

Saludos y gracias.
 



 
lumbanico - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Intentando Comprobar Los Valores De Los Controles 
 
Hola
Efectivamente he comprobado que que el objeto control no tiene propiedad text, razón por la que no te funciona ese código. La solución es utilizar también un object que si lo tiene.
PRIVATE SUB prueba
 DIM C AS control, O as object
 
 FOR EACH c IN ME.Controls
   IF c.Tag = InStr(c.Tag, "Campo obligatorio") <> 0  THEN
       O=c 'pasar el contenido del control a un objeto
        c.BackColor = IIf(O.text, Color.White, Color.LightBackground)            
   ENDIF
 NEXT
 
END


Aún así podrías tener problemas porque no todos los objetos admiten la propiedad text. Si por ejemplo le pones el tag de campo obligatorio a un gridview que no tiene propiedad text entonces cuando llegue a mirar si el text del gridview está o no vacío obtendrás un error que podrás corregir con un catch.

Otra opción es que compruebes la clase del objeto que estas mirando a ver si es un textbox, label o lo que sea para que preguntes por su contenido adecuadamente..
Como saber que tipo de control tengo

Un saludo
 



 
última edición por soplo el Lunes, 28 Diciembre 2009, 20:53; editado 1 vez 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Comprobar Url (Solucionado) TrueneX General 3 Martes, 19 Enero 2010, 19:07 Ver último mensaje
Capa
No hay nuevos mensajes Comprobar O Autentificar Usuario techm3 Bases de Datos 5 Miercoles, 29 Junio 2011, 18:40 Ver último mensaje
skaterleopoldo12
No hay nuevos mensajes Función Para Comprobar IP soplo Aplicaciones/Fragmentos de Código 2 Viernes, 01 Julio 2011, 10:47 Ver último mensaje
Invitado
No hay nuevos mensajes Sumar Valores De Un Grupo De Controles Shell Aplicaciones/Fragmentos de Código 5 Sabado, 24 Septiembre 2016, 11:03 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron