Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - 01munrra

#41
Amigo añadi esto al DOWork:
Código (csharp) [Seleccionar]

                    if (backgroundWorker1.CancellationPending == true)
                    {
                        e.Cancel = true;
                        return;
                    }


quedando asi:

Código (csharp) [Seleccionar]

      private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            while (true)
                {
                    imgId = rnd.Next(minValue: 0, maxValue: 3);
                    switch (imgId)
                    {

                        case 0:
                            img = Traga_monedas_frutas.Properties.Resources.Manzana;
                            break;

                        case 1:
                            img = Traga_monedas_frutas.Properties.Resources.Pina;
                            break;

                        case 2:
                            img = Traga_monedas_frutas.Properties.Resources.Cereza;
                            break;

                        default:
                            img = Traga_monedas_frutas.Properties.Resources.Banana;
                            break;
                    }

                    if (backgroundWorker1.CancellationPending == true)
                    {
                        e.Cancel = true;
                        return;
                    }

                    Invoke(PictureBoxDelegate, new object[] { pictureBox1, img });
                }           
        }


y si funciona!....

gracias por tu ayuda me ha servido de mucho   ;-)

#42
Cita de: Eleкtro en  3 Agosto 2016, 15:58 PM
PD: ¿realmente el profesor os ha mandado implementar algoritmos de programación asincrónica sin haberos enseñado antes?

el dio una clase, y ps primero se enredo explicando el tema(no lo explico bien) y segundo dio un ejercicio que cargaba unos datos que estaban en un .TXT y mostraba en el form, pero no tan complejo como un juego como este.

Gracias por tu ayuda, me leere esa documentación.

Saludos!
#43
Aplique tu forma y funciono!.. (Y) interesante la logica que le aplicastes, se lo aplique a los 4 PictureBox que tiene el juego, aqui una imagen para que tengas una idea:



lo añadi en un ciclo:
Código (csharp) [Seleccionar]

While(true)
{
  .................
}


e hice esto para ver si se detiene los  backgroundWorker:
Código (csharp) [Seleccionar]

       private void button2_Click(object sender, EventArgs e)
       {
           backgroundWorker1.CancelAsync();
           backgroundWorker2.CancelAsync();
           backgroundWorker3.CancelAsync();
           backgroundWorker4.CancelAsync();


pero no se esta deteniendo, como se hace ps????

Saludos!! Gracias!
#44
.NET (C#, VB.NET, ASP) / .Net C# Tragamonedas
3 Agosto 2016, 05:09 AM
saludos!!!

estoy haciendo mi proyecto final que es un tragamonedas, y estoy en el cambio de imagen del juego, El Profesor me pidio que no Usara un Timer que usara un BackGroundWorker,  entonces programe lo siguiente para el cambio de imagen del juego:

Código (csharp) [Seleccionar]

   private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            int i = 1;

            while ( i > 0 )
            {
                imagen1 = objeto.Next(0, 3);
                n1 = Convert.ToString(imagen1);
                if (imagen1 == 0)
                {
                    pictureBox1.Image = Traga_monedas_frutas.Properties.Resources.Banana;
                }
                else
                    if (imagen1 == 1)
                    {
                        pictureBox1.Image = Traga_monedas_frutas.Properties.Resources.Manzana;
                    }
                    else
                        if (imagen1 == 2)
                        {
                            pictureBox1.Image = Traga_monedas_frutas.Properties.Resources.Pina;
                        }
                        else
                            if (imagen1 == 3)
                            {
                                pictureBox1.Image = Traga_monedas_frutas.Properties.Resources.Cereza;
                            }
                i++;
            }
        }


inicio el subproceso con:

Código (csharp) [Seleccionar]

  private void button1_Click(object sender, EventArgs e)
        {
            backgroundWorker1.RunWorkerAsync();
        }


lo detengo dando clic en un boton, ahora la logica del juego es que este cambiando constantemente la imagen de los picturebox, son 4 picture box que estoy usando, y por supuesto tengo 4 BackGroundWorker, uno para cada imagen.

el error que me esta generando es el siguiente:
Código (csharp) [Seleccionar]

El Codigo de usuario no encontro InvalidOperationException


da en la linea:

Código (csharp) [Seleccionar]

pictureBox1.Image = Traga_monedas_frutas.Properties.Resources.Banana;


que estoy haciendo mal?

gracias por su atencion.



#45
Gracias!!!! ;-)
#46
saludos HdM!!!

si había investigado, tenia días dando con el asunto, me faltaba documentación para resolverlo y aquí esta la solución:

Código (vbnet) [Seleccionar]

       Dim t_enfermedades As OleDbDataAdapter
       Dim dt As DataTable

       Using con As New OleDbConnection(cadena)
           orden = "Select id, nombre from Enfermedades"

           t_enfermedades = New OleDbDataAdapter(orden, bd)

           Try
               dt = New DataTable

               'Llenamos el DataTable con la consulta
               t_enfermedades.Fill(dt)

               'Cargamos el comboBox
               ComboBox_enfermedades.ValueMember = "id"
               ComboBox_enfermedades.DisplayMember = "nombre"
               ComboBox_enfermedades.DataSource = dt
           Catch ex As Exception
               MessageBox.Show("Se produjo un error : " & ex.Message)
           End Try

       End Using


gracias!!!
#47
saludos!

que estoy haciendo mal:
Código (vbnet) [Seleccionar]

       orden = "Select id, nombre from Enfermedades"
       t_enfermedades.CommandText = orden
       registro = t_enfermedades.ExecuteReader
       If registro.HasRows = True Then
           While registro.Read
               ComboBox_enfermedades.Items.Add(registro.GetString(1))
               ComboBox_enfermedades.ValueMember = registro.GetInt32(0)
           End While
       End If
       registro.Close()


lo que quiero es que me cargue el combobox con los registros de la base de datos, y quiero captar el ID del items seleccionado por el texbox
que estoy haciendo mal?
#48
Saludos!; he buscado tutoriales para crear un instalador de mi proyecto, y veo que todos los tutoriales hacen es Archivo->Nuevo Proyecto->instalado->InstallShield

por que en mi visual basic no me muestra eso????
#49
saludos! tengo los siguientes registros en una tabla enfermedad

Código (vbnet) [Seleccionar]

enfermedad
  id  nombre     signo        sintoma
  --  --------    ----------   ------------
01  gripe      01-04-06     01-08-09
02  Anemia   08-10-25     10-06-04
03  DIarrea   05-06-10    01-02


cabe destacar que los campos signo y sintoma esta compuesto por id que son separados por "-"
y tengo como dato ID_signo = 06, tengo que buscar que enfermedades tienen ese signo,  habra un tipo de consulta que seleccione que enfermedades tiene ese signo???
#50
.NET (C#, VB.NET, ASP) / BD access
10 Abril 2016, 06:38 AM
saludos!

estoy haciendo esta consulta:
Código (vbnet) [Seleccionar]

orden = "select id, nombre, signos from tabla"
t_comando.ComandText = orden
registro = t_comando.ExecuteReader
if registro.HasRow = true then
   registro.Read()
   MsgBox(registro(2))
end If


me esta mostrando solo el primer "signos" del primer registro de la tabla, y no de cada registro de toda la tabla, como puedo hacer para que recorra cada registro y me lo muestre???

gracias