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 - GonzaFz

#51
¿Se hace con este codigo?
Código (csharp) [Seleccionar]
int max = int.Parse(mision.SelectedValue);
#52
Cita de: seba123neo en 31 Mayo 2012, 21:14 PM
si tendrias una base de datos queda mas elegante que poner los items fijos en el codigo.

aunque tambien esta la solucion de crear una clase con el ID y nombre, y luego usar la propiedad .DataSource del combo para hacer un "SELECT" (como si fuera una base de datos, pero sobre una coleccion de clases, asi te trae todos los que coinciden con el ID seleccionado, es re facil.

How can one ComboBox's items be determined by another?





Pase el codigo a C# pero una parte no me funciona..
Código (csharp) [Seleccionar]
_with2.DataSource = CountryList.Where(f => f.ContinentID = mision.SelectedValue).ToList;

Seria esa linea (mision es mi combobox principal). Me marca que mision.SelectedValue no puede pasar de Objet a int..

Y si le pongo == me marca toda la linea diciendo que == no se puede aplicar en int y object ..
#53
Wow que programa mas útil! Eso si es ingeniarse xd
La verdad me gusta tu programa porque siempre tengo problemas con las cuentas pero estaria bueno que mejoraras el diseño..
#54
Bueno para ser simple y rapido, esto es en C#.
Necesito hacer unos combobox "dinamicos", me refiero a por ejemplo esos que te hacen elegir el Pais, y dependiendo cual pongas te muestra una lista de provincias.

Basicamente quiero hacer lo mismo, la unica forma que se me ocurrio y probe fue haciendo lo siguiente:

Código (csharp) [Seleccionar]

private void mision_SelectedIndexChanged(object sender, EventArgs e)
       {

           if (mision.SelectedIndex == 0)
           {
               nmision.Items.Add("1"); // AGREGAR AL SEGUNDO COMBOBOX
           }
       }

pero si luego vuelves a cambiar el primer combobox envez de cambiar la lista, agrega mas opciones.

Me gustaria si me pudiesen ayudar.
Gracias =).

PD: Me falto agregar que cada tipo de opcion debe tener un ID distinto a los anteriores ya que luego tengo que comprobar si esta seleccionado
Código (csharp) [Seleccionar]

 if (mision.SelectedIndex == 0)
{
      if (nmision.SelectedIndex == 15)
{
  // HACER ALGO
}
}

#55
Gracias Edu, si se me acaba de ocurrir algo pero primero tengo que probar. Como ya tengo todos los comandos que necesito estoy amando el programa para ir terminandolo y ahi voy a probar algo asi como lo que me dijiste.
Si no me sale y no logro vuelvo a postear asi me ayudas xd.

Gracias =D
#56
Hm no me quedo bien en claro eso del switch.
Mira osea mi programa se basa en lo siguiente, es un bot entonces yo quiero establecer las opciones de como funcione, por eso el combobox.
Por ejemplo primero pongo uno que diga:

Elige el numero de flotas a enviar (porque es un juego de guerra)
1
2
3
4
5
6

Elige el numero de la mision que quieres hacer
1
2
3
4
5

Elige el nivel de la mision
Facil
Intermedio
Dificil

Entonces aprieta el boton, llamemoslo Submit y luego con eso arma los eventos que sucedan. Por eso utilize los Ifs, pero si tengo que hacer con todas las opciones posibles mi codigo me quedara hiper largo y confuso, por eso estoy confundido..
#57
Muchas gracias Edu =) Funciono.
No es para verificar si da verdadero, en realidad esos If son de otra cosa.
El for es para repetir la accion una cantidad de veces.
Los Ifs son para realizar X acción dependiendo que eligió el usuario en un comboBox que tiene varias opciones.
No se si se entendio xd.

// Aclaro
Uso el for para que la acción del Button1 se repita cuantas veces el usuario quiera.
Los if son de las acciones que se realizaran al apretar el button1

Pero si sabes como hacerlo mejor (? acepto sugerencias.
#58
Bueno creo que es algo simple pero no se como hacerlo!
Tengo un boton que realiza una acción pero quiero que realize tantas acciones como el usuario quiera, entonces decidi usar for. El problema esta a la hora de tomar los numeros de la cantidad de veces que quiere el usuario, no se como hacerlo porque me da error.
Código (csharp) [Seleccionar]

private void button1_Click(object sender, EventArgs e)
        {
           
            for(int z = 0; z < (aquí quiero insertar el valor del textbox que sera un numero); z++)
            {
            if (comboBox1.SelectedIndex == 1)
            {
                MessageBox.Show("Se ha elegido el 2");
            }
            if (comboBox1.SelectedIndex == 2)
            {
                MessageBox.Show("Se ha elegido el 3");
            }
            if (comboBox1.SelectedIndex == -1)
            {
                MessageBox.Show("Elige un numero de flotas");
            }
            }
        }


Probe poniendo textBox1.Text pero me da un error que dice:
El operador '<' no se puede aplicar a operandos del tipo 'int' y 'string'

Me gustaria si esta vez me pudiesen ayudar >.<

#59
Bueno resulta que ahora necesito encontrar una imagen, llamemosla "cuadro.bmp" en un WebBrowser.
Tengo un poco de idea de como hacer eso, por ejemplo, con un for para escanear todos los pixeles y determinar cuales son iguales y cuales no, pero el problema es que no se como seguir.
1º Mi codigo inicia con un GetwindowImage que es de alguien que encontre por internet, supongo que lo que hace es crear un nuevo bitmap con la imagen del webbrowser. No se si con WM_ se podria hacerlo de una ventana escondida (mejor dicho sacando solo foto del webbrowser).

2º El segundo codigo es para tomar la foto del WebBrowser.

3º Es el codigo para escanear los pixeles, y aquí es donde esta mi problema. Mi codigo escanea todos los pixeles, ahi vamos bien pero el problema es que el If realiza la acción por cada pixel que encuentra y eso no es lo que quiero. Me gustaria que primero escanee todo y luego realize el If solo 1 vez!

Más me gustaria poder hacer lo siguiente:
Que se realize el GetPixel y el For para ubicar todos los pixeles y que luego me devuelva las coordenadas donde se encuentra mi imagen "cuadro.bmp". No se si se entiende, seria primero el For seguido de el GetPixel para que escanee toda la pantalla y que luego encuentre mi imagen "cuadro.bmp" (con getpixel o otro metodo sencillo) y me de sus coordenadas de inicio.

Este es mi codigo. Espero que se haya entendido, y si me quieren ayudar y no entendieron mi explicación intentare hacerla mas simple.

Código (csharp) [Seleccionar]

private static Bitmap GetWindowImage(IntPtr hWnd, Size size) // CODIGO PARA TOMAR SCREENSHOT (LO ENCONTRE POR INTERNET)
        {
            try
            {
                if (size.IsEmpty || size.Height < 0 || size.Width < 0) return null;

                Bitmap bmp = new Bitmap(size.Width, size.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                Graphics g = Graphics.FromImage(bmp);
                IntPtr dc = g.GetHdc();

                if (PrintWindow(hWnd, dc, 0) == 0)
                {
                    MessageBox.Show("Fallo");
                }

                g.ReleaseHdc();
                g.Dispose();

                CloseHandle(dc);

                return bmp;
            }
            catch { return null; }
        }

        private Bitmap getBrowserSS()  // TOMO UN SCREENSHOT DEL WEBBROWSER
        {
            return GetWindowImage(webBrowser1.Handle, webBrowser1.Size);
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            Bitmap recursos = new Bitmap(@"D:\GO\cuadro.bmp");
            int X, Y;
            for (X = 0; X < getBrowserSS().Width; X++)
            {
                for (Y = 0; Y < getBrowserSS().Height; Y++)
                {
                    if (getBrowserSS().GetPixel(X, Y) == recursos.GetPixel(X, Y))
                    {
                       // ME GUSTARIA QUE ME DEVUELVA DONDE SE ENCUENTRA MI IMAGEN CUADRO.PNG
                    }
                    else
                    {
                        MessageBox.Show("Algo esta mal");
                    }
                }
            }



        }


Desde ya muchas gracias =).
#60
Gracias seba =).
Igualmente despues de muchos millones de intentos logre hacer que funcione correctamente (en c#), el problema ahora es que me di cuenta que no funciona en contenidos FLASH que se encuentren dentro de un WebBrowser.
Pense en poner, por ejemplo, un Label o Panel atras entonces yo en mi funcion de FindWindowEx ponia que lo haga en el Label (que este estaria atras de mi WebBrowser) pero luego de pensar mucho me di cuenta de que no es lo mismo que un macro, si yo hacia eso entonces igual se haria clic en el Label aunque este sea invisible.
Así que bueno me desilucione con no poder hacer clic en Flash :S! Ahora no se me ocurre otra forma de intentarlo..