Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Matriz de paneles?

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Matriz de paneles? Responder citando

Hola a todos!

Estoy haciendo un tatetí y uno de los problemas es la implementación de la matriz o grilla de juego.
Ahora lo hice con 9 paneles, y lamentablemente los tengo que manejar individualmente, sin ningún bucle for.
Existe alguna manera de hacer algo así pero teniendo una matriz 3x3 de paneles?
Intenté con los StringGrid y DrawGrid, pero no me gustaron.

Todo lo que necesito es que aparezca un 'X', un 'O' o un ' ' (espacio). Por ahora lo hice con el Caption de cada panel, y no encontré nada mejor en las solapas. Alguna idea para hacerlo de otra manera?
Tengo BCB 5.0.
_________________
"Todo es posible si Ud. no sabe de qué está hablando"
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Ufa, ninguna idea??
En definitiva quiero tener una matriz de "algo" que pueda hacer aparecer como "O" o "X", sean paneles u otra cosa. Cuestión de ponerle el Caption con el valor y listo...
Se puede usar algún grid? Se puede deshabilitar la posibilidad de seleccionar casilleros, sean uno o varios, pero que siga capturando los eventos OnClick?
_________________
"Todo es posible si Ud. no sabe de qué está hablando"
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola Andrés,

creo que puedes probar con un TStringGrid. Tiene el evento OnClick, que te da la fina y la columna (ARow y ACol) que el usuario ha "cliqueado", así que puedes actualizar el valor de esa casilla con un X o una O, según corresponda.
El StringGrid lo puedes hacer con la cantidad de filas y de columnas que quieras.

Espero que te sirva y nos cuentas qué tal te va.

Saludos!
Volver arriba
Mensaje    Asunto: Responder citando

¡¡Perdón!!

Me acabo de dar cuenta de que me lié con el evento OnDrawCell (es que este evento me trae loca, puedes ver un post mío un poco más abajo).

A ver, para saber qué fila y qué columna ha seleccionado el usuario, puedes utilizar las propiedades Col y Row del StringGrid.
Así que creo que en el evento OnClick deberías escribir algo así:

StringGrid1->Cells[StringGrid1->Col][StringGrid1->Row]="X";

Bueno, a ver si ahora...
Volver arriba
Mensaje    Asunto: Responder citando

hola,
si usas bitbutton puedes usar imagenes en vez de letras. usa una matriz de punteros y almacenas punteros a cada bitbutton y modificas el de la posicion que quieres. para saber su contenido accedes al caption o glyph del button al que apunta esa posicion y ya. eso creo
Volver arriba
Mensaje    Asunto: Responder citando

Lo unico que necesitas es mirar la ayuda sobre FindComponent.
Esta funcion te devolvera un puntero al componente que se llame como tu indiques;
Un ejemplo:

Componente : TComponent; // Variable que va a ser el componente buscado.

Componente = Form1->FindComponent("Panel1");

Desde entonces la variable Componente hace referencia a Panel1.

Para hacer bucles...
for(i=0; i<10;i++){
Componente = Form1->FindComponent("Panel"+StrToInt(i));
}
_________________
-
Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Excelente! Voy a probarlo.
Igualmente no resultó tan grave... hice el método dibujar del objeto Tabla y sólo esa función tiene línea por línea la "traducción" de la tabla en memoria a esta matriz de paneles en pantalla. Lo demás se hace todo con la tabla en memoria.
Pero igual queda más lindo así con esos punteros... Smile

Por cierto, es bastante difícil la "IA" para el modo difícil!! Embarassed
_________________
"Todo es posible si Ud. no sabe de qué está hablando"
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Bueno, ya lo tengo bastante terminado, digamos que por ahora no le voy a hacer nada más.
Para los que quieran verlo, pueden ver mi tatetí acá.
Cualquier comentario o crítica, serán bienvenidos.
_________________
"Todo es posible si Ud. no sabe de qué está hablando"
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.