Inicio > Visual Basic > leosoft > Problema de seleccionar on objeto, en VB

Problema de seleccionar on objeto, en VB

Experto:
Usuario:
Fecha: 04/12/2008
Valoración: (5,00 sobre 5) Categoría: Visual Basic
04/12/2008
camora, usuario preguntando en Visual Basic
Usuario
Saludos, estoy aprendiendo VB, asi 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 como lo puedo lograr? necesito manejar un archivo y solo con condicionantes?

Algun ejemplo, por favor.

Saludos
04/12/2008
camora, experto respondiendo en Visual Basic
Experto
Hola,
Tenes dos maneras de guardar esos datos, la primera y mas aconsejable es crear un archivo de base de datos, en el vas a ir guardando toda la actividad del restaurante, pero te tenes que meter con bases de datos y la programacion que ello implica, si vos no nesecitas grabar la actividad y solo queres almacenar el estado actual, para poder salir de programa y al cargarlo recuperar el enterior, lo que tenes que hacer es un archivo sencillo de texto, te doy un ejemplo:

Tenemos 10 mesas, por lo tanto bamos a crear una matriz en el procedimiento general
DIM EstadoMesas(10) as Byte

leugo 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 codigo al hacer click el esa mesa tambien pondrias:
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 tedrias la matriz con los datos de las mesas, vos tendrias 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 mas completo, si queres dame esos datos y te paso el codigo.
Calquier duda estoy a tu disposicion, tambien si queres base de datos pideme y te paso una idea de como crearla y trabajarla.
Saludos, Leo
04/12/2008
camora, usuario preguntando en Visual Basic
Usuario
Excelente. Una fantástica solución.
Enlaces patrocinados