Saludos, estoy aprendiendo VB, así que tengo varias dudas, actualmente estoy desarrollando un pequeño programa, el cual muestra un mapa de un restaurant, y sus mesas, mi idea es que cuando yo seleccione la mesa, con un clic, cambie de color, y quede marcada, para saber que ya fue ocupada, obviamente, cuando yo me salga del programa y regrese debe de dejar cada mesa con su ultimo estatus, ¿esto cómo lo puedo lograr? ¿Necesito manejar un archivo y solo con condicionantes?
Algún ejemplo, por favor. Saludos
1 respuesta
Respuesta de leosoft
1
1
leosoft, Programacion Avanzada en VisualBasic, trabajo hace mas de 15 años...
Tienes dos maneras de guardar esos datos, la primera y más aconsejable es crear un archivo de base de datos, en el vas a ir guardando toda la actividad del restaurante, pero te tienes que meter con bases de datos y la programación que ello implica, si vos no necesitas grabar la actividad y solo quieres almacenar el estado actual, para poder salir de programa y al cargarlo recuperar el anterior, lo que tienes que hacer es un archivo sencillo de texto, te doy un ejemplo: Tenemos 10 mesas, por lo tanto vamos a crear una matriz en el procedimiento general DIM EstadoMesas(10) as Byte Luego en el programa vamos a suponer que la mesa ocupada toma al valor 1 y la desocupada el valor 0 Se nos ocupa la mesa 3 Vos por código al hacer click el esa mesa también pondrías: EstadoMesas(3)=1 si de desocupara pondrias EstadoMesas(3)=0 asi con todas las mesas, pero tambien llamarias siempre a esta funcion: esto copialo y pegalo en el form Private Sub GrabarEstado() Open "C:\Prueba.sta" For Output As #1 For x = 1 To 10 Print #1, EstadoMesas(x) Next Close #1 End Sub al hacer click sobre una mesa harias esto: If EstadoMesas(mesa) = 1 then EstadoMesas(mesa)=0 'aca pondrias el color de libre Else EstadoMesas(mesa)=1 'aca pondrias el color ocupado End If Call GrabarEstado de esta anera siempre te graba los dato apenas haces un cambio. Al cargar el programa harias esto: esto ponelo en el Loas del formulario principal On Error Resume Next Dim Numero As Byte Numero = 1 Open "C:\Prueba.sta" For Input As #1 Do While Not EOF(1) Input #1, valor EstadoMesas(Numero) = valor Numero = Numero + 1 Loop Close #1 Con esto lees los datos del archivo y tendrías la matriz con los datos de las mesas, vos tendrías que leer cada una y colocar el color que le corresponde a cada mesa. Como no se como haces con los dibujos de las mesas y con que cambias de color, no te puedo enviar algo más completo, si quieres dame esos datos y te paso el código. Cualquier duda estoy a tu disposición, también si quieres base de datos pídeme y te paso una idea de como crearla y trabajarla.