Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Problemita Con Parametros En Form
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Problemita Con Parametros En Form 
 
Buenas tardes...

Estoy bloqueado con una tontería y como no tengo mucho tiempo, no puedo ir a pasear para despejarme...
El problema es el siguiente:
Yo tengo un form en el cual aparecen los datos de un trabajador. Para no tener que hacer varios forms, he creado una función dentro de este form que actúa de la siguiente manera:

Al cargar un usuario, se activa el modo Solo lectura, que lo que hace es bloquear todos los campos de texto. En caso de que pulses el botón modificar, cambia de color el fondo del form, cambia de nombre el botón "Modificar" por "Terminar Modificación" y deben ser modificables todos los campos de texto. El problema es que me cambia el color, pero no me hace nada mas... El código que tengo es este:
PUBLIC SUB convertidor(convertirEn AS String)
IF convertirEn = "Solo Lectura" THEN
nombre_txt.ReadOnly = TRUE
fechaNacimiento_txt.ReadOnly = TRUE
fechaNacimiento_btn.Enabled = FALSE
notas_txt.ReadOnly = TRUE
estado_combo.Enabled = FALSE
estado_btn.Enabled = FALSE
info_txt.ReadOnly = TRUE
tienda_txt.ReadOnly = TRUE
tienda_btn.Enabled = FALSE
tienda_btn.Text = "Ver Tienda"
modificar_btn.Text = "Modificar Ficha"
estado = "Solo Lectura"
ENDIF
  IF convertirEn = "Modificacion" THEN
nombre_txt.ReadOnly = FALSE
fechaNacimiento_txt.ReadOnly = FALSE
fechaNacimiento_btn.Enabled = TRUE
notas_txt.ReadOnly = FALSE
estado_combo.ReadOnly = FALSE
estado_combo.Enabled = TRUE
estado_btn.Enabled = TRUE
info_txt.ReadOnly = FALSE
tienda_txt.ReadOnly = FALSE
tienda_btn.Enabled = TRUE
tienda_btn.Text = "Mod. Tienda"
cerrar_btn.Text = "Cerrar Ficha"
modificar_btn.Text = "Terminar Modificación"
estado = "Modificacion"
ficha.Background = 8825817
ENDIF
END
 



Alguien sabe el porque puede ser? El caso es que cuando yo metí los componentes en el form, no toque nada, es decir, no los bloquee ni nada, si no que los deje como están predeterminadamente (todos modificables) y cuando cargo el form, llamo a convertidor("Solo Lectura") entonces ya me bloquea todos los campos de texto, pero cuando llamo a convertidor("Modificacion"), se pasa por alto todos los cambios menos el ficha.Background = 8825817
 




===================
Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.
Albert Einstein

En el SEXO querer es poder, si ELLA quiere, TU puedes.
Cubel!
 
Cubel - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemita Con Parametros En Form 
 
Hola
Creo que no refrescas los controles. Deberías hacer un refresh.

Pero veo mal ese código porque no es eficiente. Te digo algunas cosas que yo haría para hacer eso mismo.

Posibilidad 1
Una posibilidad es meter todos los controles (excepto el botón de activar modificación) en un container (por ejemplo un frame). De esa forma con activar/desactivar el frame ya tienes activados/desactivados todos sos controles y no tendrías que ir uno a uno.

Posibilidad 2
Poner a todos los controles el grupo "controles". De esa manera con un sencillo bucle puedes cambiar cualquier propiedad de todos esos controles sin apenas código.

En principio al cargar el form todos los controles estarían desactivados de una forma u otra. Al pulsar el botón llamas a una rutina de activar que tendría un código parecido a este
sub boton_click()
$ConvertirEn=not $ConvertirEn
CambiarControles()
end


Y ese cambiarcontroles es algo como esto
private sub CambiarControles()
Dim Item as control
frame.enabled=$ConvertirEn
for each item in frame.children 'los controles que hay dentro del frame
   item.backcolor=color a usar cuando está activo
next
end

La variable ConvertirEn que tiene toda la pinta de ser una variable pública puede ser una propiedad del foro.
Private $ConvertirEn as boolean
property Convertir as boolean
private function Convertir_read as boolean
return $ConvertirEn
end
private sub Convertir_write(value as boolean)
$ConvertirEn=value
end


Por dar mas ideas se me ocurre que en vez de poner readonly o enabled a todas las cosas si las tienes en un grupo y tienes la propiedad Convertir que puede valer true o false según que quieras que se admitan cambios o no todo lo que tienes que hacer para permitir(denegar cambios en esos controles es esto
private sub controles_keypress()
if not $ConvertirEn then
   stop event
endif
end

Mientras la propiedad convertir valga false no se admitirá pulsación alguna en ninguno de los controles del grupo "controles"

Por último ese if/endif y luego volver a preguntar por lo mismo es consumir ciclos de cpu obligándole a evaluar la misma operacion dos veces. Por algo está el if/else/endif.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemita Con Parametros En Form 
 
Mmmm... Ok ok, voy a probar... De todas formas este código aun no estaba terminado, porque aun tengo que añadir un par de estados, que 1 modificara solo una parte y otro sera para modificar otra cosa.... pero como al probar este, ya no funcionaba, digo, para que seguir?

Voy a probar lo que me dices ok? Gracias.
 




===================
Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.
Albert Einstein

En el SEXO querer es poder, si ELLA quiere, TU puedes.
Cubel!
 
Cubel - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problemita Con Parametros En Form 
 
bueno tu coge de eso lo que te convenga y ya está. Solo pretendo dar ideas no corregir a nadie. De hecho no lo he probado, podría haber algún error, pero no es importante. Solo quería mostrar otra forma de enfocar el asunto. En vez de variables públicas usar propiedades, en vez de hacer algo control a control usar arrays de controles, en vez de activar uno a uno cada control englobarlos en un contenedor y activar/desactivar el contenedor.

Un saludo
 
 



 
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 Como Pasarles Parametros A Un Archivo PDF jcontasti General 0 Lunes, 28 Junio 2010, 20:25 Ver último mensaje
jcontasti
No hay nuevos mensajes Pase De Parametros Por URL victoria General 1 Domingo, 01 Abril 2012, 21:14 Ver último mensaje
jsbsan
No hay nuevos mensajes Se Puede Llamar Desde Un Form A Un Menupop... v3ctor General 6 Martes, 03 Diciembre 2013, 09:06 Ver último mensaje
jsbsan
No hay nuevos mensajes Puedo Pasar Nombres De Form Y Usarlos Como... Horacio General 1 Viernes, 01 Julio 2016, 21:58 Ver último mensaje
shordi
 

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

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
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