SoloCodigo
Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Barboza en Viernes 14 de Mayo de 2004, 16:51
-
Hola.
Necesito crear un Puzzle en C++Builder6. Este juego es totalmente simple, pero necesito alguna idea de como hacer para que el boton clickeado se cambie por el boton en blanco si/solo si este se encuentra a la par o debajo de el.
En el programa ya he podido que se cambien por el boton en blanco, pero se cambian saltando cualquier cantidad de botones.
Esto utilizando esto
a=Button1->Left;
b=Button1->Top;
Button1->Left=Button4->Left;
Button1->Top=Button4->Top;
Button4->Left=a;
Button4->Top=b;
Siendo el Button1 el boton en blanco.
Cualquier ayuda es bienvenida a mi correo
lbarboz_a@costarricense.cr
Pura Vida!!!
-
hay una manera de poner el foco en un boton, con el metodo SetFocus(), esto le quita el foco a un boton y lo pone en el que lo ejecuta, puede servirte ¿no?
-
¿No hay una manera de poner el foco en un boton?, con el metodo SetFocus(), esto le quita el foco a un boton y lo pone en el que lo ejecuta, puede servirte ¿no?
pense que no podia modificar el otro mensaje y sin querer mande dos
-
carquemo: gracias por el tip SetFocus(), pero soy bastante ignoramte en cuanto a la programacion. Si pudiera decirme o ayudarme en Como y Donde utlizar esa funcion me ayudaria mucho.
mi correo lbarboz_a@costarricense.cr.
o si no yo revisare periodicamente este foro.
Gracias
ATTE:
Barboza
-
Si lo que quieres es que el boton que tiene el foco cambie a otro tienes que hacer esto:
Boton_al_que_quieres_que_vaya_el_foco->SetFocus();
y desde ese momento, este boton será el que tenga el foco.
Ahora bien, releyendo tu mensaje, lo que quieres es que cambie de color o algo asi si esta libre el otro, eso has de hacerlo por codig, comprobando si en el lugar "inferior" de la matriz esta libre (o el de la derecha o el de la izquierda)
algo asi:
quieres comprobar el estado del elemento
if (matriz[x+1][y]==libre) // el de la derecha
derecha libre
if (matriz[x-1][y]== libre) // el de la izquierda
izquierda libre
if (matriz- [y-1]== libre) // el de arriba
arriba libre
if (matriz- [y+1]== libre) // el de abajo
abajo libre
y asi sucesivamente, IMPORTANTE, vigila los rangos de "x" y de "y", para no pasarte del rango de la matriz, ni por abajo (<0) ni por arriba , por ejemplo en una matriz de C, ni "x-1", ni "y-1" puede ser cero, eso debes comprobarlo ANTES de acceder al elemento de la matriz
Saludos.