https://foro.gambas-es.org/viewtopic.php?f=1&t=451&p=2569#p2569
-----------------------------------
Cubel
Lunes, 22 Febrero 2010, 22:54

Re: Archivo Settings
-----------------------------------
Nose mañana mirare haber otra vez. Y ya digo algo!

_________
EDITADO:
------------------

Haber mas o menos se cual es el problema pero no se el porque pasa eso.
La cuestión es lo el programa pregunta si existe una variable en el archivo settings y si esta en Si es que ha entrado al programa antes entonces carga las opciones, si no pues debes configurarlo tu. Como me a dicho un compañero del foro, lo que he hecho es asignar unas variables ficticias aunque despues el usuario tenga que asignar las buenas, o los datos buenos de conexion.

El problema esta en que si pulsas si, deberia ir al form de configuracion, si pulsas que no quieres configurar, deberia abrirte el form de login. No me abre ninguno de los dos. Mejor dicho el de login es el primero que se abre que es el cual pregunta si existen variables, si dices que si se minimiza y abre el form configuracion y si no pues nada te deja en el login. El problema que el login en algunos ordenadores no funciona, es decir, nunca aparece pero sin embargo si que carga el message.question que envio en el form de login. El programa esta probado en varios ordenadores y funciona en: 1 portatil, con ubuntu 9.10 instalado, y 3 sobremesas con windows xp que corren el virtualbox con ubuntu 9.10. Y no funciona en un sobremesa con ubuntu 9.10 y otro sobremesa con ubuntu 9.04. 

el codigo del form login es el siguiente. No se que esta mal, posiblemente vosotros veais cosas que soy incapaz de ver por mi poca experiencia.
[code linenumbers=false syntax=gambas]
' Gambas class file



PRIVATE SUB cargarDatos()
DIM respuestaBase AS Result 
DIM i AS Integer 
respuestaBase = conexionDB.conectar("SELECT id,usuario,contrasenya,nombre FROM " & Settings["BaseDatos/tablalogin"] & " WHERE usuario='" & usuario_txt.Text & "' AND contrasenya='" & contrasenya_txt.Text & "'") ''Llamo a la funcion conectar y envio la sentencia 
IF respuestaBase.Count > 0 THEN
 variables.id = respuestaBase!id
variables.nombre = respuestaBase!nombre
variables.usuario = respuestaBase!usuario
variables.contrasenya = respuestaBase!contrasenya
respuestaBase = conexionDB.conectar("UPDATE " & Settings["BaseDatos/tablalogin"] & " SET  `conectado` =  'Si' WHERE  `" & Settings["BaseDatos/tablalogin"] & "`.`id` = '" & variables.id & "'")
login.Close
formularioMadre.Show
  ELSE
  IF usuario_txt.Text = "pcmrepinfo" THEN
  '' mostrar diagnostico de la configuracion y de la conexion a internet.
  ELSE
  conectando.CLOSE
  ME.Minimized = FALSE
  Message("El usuario y/o la contraseña son incorrecos. \n Intentalo de nuevo")
  ENDIF
  ENDIF
conexionDB.datosBase.Close ''Cierro la conectar 
END 


PUBLIC SUB Form_Open()
  DIM respuestaPreguntaInicio AS Integer
  ME.Center
 IF Settings["PrimeraVez/abiertoAntes"] = "si" THEN
  funciones.init
  ELSE
Settings["EmpresaInicial/anyoEmpresa"] = "2010"
Settings["EmpresaInicial/nombreEmpresa"] = "Sin Empresa"
Settings["EmpresaInicial/idEmpresa"] = "0000"
Settings["EmpresaInicial/codigoEmpresa"] = "0000"
Settings["BaseDatos/tablaMatriculas"] = "matriculas"
Settings["BaseDatos/tablaDocumentaciones"] = "documentaciones"
Settings["BaseDatos/tablaAvisos"] = "avisos"
Settings["BaseDatos/tablaIncidencias"] = "incidencias"
  respuestaPreguntaInicio = Message.Question("No existen datos de conexión,\nquiere crearlos ahora?", "Aceptar", "Cancelar")
  IF respuestaPreguntaInicio = 1 THEN
  funciones.cargarPanelConfInicial("mysql", "mysql.ejemplo.com", "usuarios", "mantenimientoVehiculos", "documentaciones", "avisos", "tipoVehiculos", "incidencias")
  ME.Minimized = TRUE
   ELSE
   funciones.init
  ENDIF
 ENDIF
END



PUBLIC SUB configuracion_btn_Click()
info_txt.Text = ("Modificando la configuración de conexión")
  configuracion.Show
END

PUBLIC SUB aceptar_btn_Click()
info_txt.Text = ("Comprobando la configuración")
ME.Minimized = TRUE
cargarDatos()
END

PUBLIC SUB cerrarAplicacion_btn_Click()
  login.Close
END
[/code]
Me gustaría recalcar, que a pesar de que es muy probable de que el código tenga muchas cosas innecesarias o que incluso este programando con malas costumbres, el programa funciona en varios ordenadores como he mencionado antes, no entiendo el porque en otros no, ya que en ambos casos, esta probado en pc's que corren Ubuntu en nativo y en virtual box.


