Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
En qué tienes dudas, y cual de las alternativas te gusta más, porque hay distintas formas de hacerlo en este mismo hilo.

Por cierto, siempre puedes hacer referencia a través de Imagenes[fila, columna].

Veo que estas intentando hacer el cuadriculado mediante TShapes, te aconsejo que busques algún componente ya hecho. En mi caso he usado el TLMDSimplePanel de las libreria LMDTOOLS (direccion en google), son gratis, y permite dibujar un panel, poniendo las lineas por separado, es decir, pinto los bordes de blanco, y cuando se hace clic en un lateral, pinto ese lado nada más de color negro. Pintar es simplemente decirle al panel BorderSides := BorderSides + bsLeft para añadir el borde izquierdo.

Si tienes que implementarlo todo a mano.... mi más sincero pésame

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 09-11-2005 a las 10:56:44.
Responder Con Cita
  #2  
Antiguo 09-11-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Lepe
Si tienes que implementarlo todo a mano.... mi más sincero pésame
No tanto. Yo lo haría dibujando directamente en un PaintBox. No es tan complicado ya que sólo son segmentos horizontales y verticales y si acaso, rellenar los cuadros ya cerrados del color de cada jugador. Al final de cuentas resulta más fácil que andar colocando shapes aquí y allá, además de que sería más lento.

Yo también preguntaría cuáles son las dudas específicas y de qué opción le interesa. Creo que nosostros ya hicimos nuestro esfuerzo. Ahora le toca a él.

// Saludos
Responder Con Cita
  #3  
Antiguo 09-11-2005
mifiar mifiar is offline
Registrado
 
Registrado: nov 2005
Posts: 9
Poder: 0
mifiar Va por buen camino
Hola, si me pudieran explicar Lepe y Roman sus metodos un poco mas a fondo ademas de como asociar la parte gráfica con el codigo que me proponen si no es mucha molestia.

En lo de hacer referencia a los objetos lo que pasa que al momento de seleccionarlo, ya en tiempo de ejecución, no encuentro la manera de saber cual de los componentes creados, los circulos en este caso, estoy seleccionando. Si me pudieran explicar tambien lo como hacer que las coordenadas de los pixeles me las de de acuerdo a la posicion que estan en la forma y no con respecto al objeto creado . Gracias .
Responder Con Cita
  #4  
Antiguo 10-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
En lo que me toca, ya he dicho que uso un panel al que se le pueden poner las lineas independientes, y la parte lógica (la clase TCuadro) informa mediante un evento cuando se cierra un cuadro a la parte gráfica. En ese evento es cuando repinto el fondo de un color si está cerrado o no.

El dibujar una linea, se hace en la parte gráfica, al hacer clic cerca de los bordes , detecto qué borde es y directamente lo pinto, despues informo a TCuadro, y este propaga un mensaje por sus vecinos para ver si se deben cerrar o no. Básicamente es como una onda expansiva, en cuanto a eficiencia no es nada bueno, pero son las primeras pruebas que he realizado.

Mi Tcuadro queda así (aunque no descarto cambios):
Código Delphi [-]
type
  TCuadro = class;
  TNotifyText = procedure (Sender:Tcuadro; Cerrado:boolean) of object;
  TLineas = (lNorte, lSur,lEste, lOeste);
  SetOflineas = set of TLineas;

  TCuadro = Class(TObject)
  protected
    Semaforo:Boolean;
  public
    constructor Create();
  published
    property Oeste:Boolean read FOeste Write SetOeste default False;
    property Norte:Boolean read FNorte Write SetNorte default False;
    property Sur:Boolean read GetSur;
    property Este:Boolean read GetEste;

    property VecinoNorte :Tcuadro read VNorte Write SetVNorte;
    property VecinoSur   :Tcuadro read VSur Write SetVSur;
    property VecinoOeste :Tcuadro read VOeste Write SetVOeste;
    property VecinoEste  :TCuadro read VEste Write SetVEste;

    property Cerrado:Boolean read GetCerrado Write SetCerrado;
    property Lineas:SetOflineas read GetLineas;
    property NLineas :Integer read GetNLineas;
    property Contro:TComponent read Fcontrol Write Fcontrol;

    property OnCierre:TNotifyText read FOncierre Write FOnCierre;
    procedure CompruebaCierre;
  end;

Sur y Este, lo que hacen es ver si su vecino tiene el Oeste marcado, o si es el borde inferior/derecho del Timbiriche

Al inicio, VecinoXXXXX será nil, y al crear la cuadrícula es cuando se unen unos con otros.

Lineas y NLineas, son propiedades de ayuda, para ver qué lineas tiene pintada un cuadro determinado.

Contro es el control de la interfaz gráfica al que está asociado, Mi Panel. Una vez creado el Panel en tiempo de ejecución, y la clase, los asocio mediante esa propiedad, igual que se hace con un TAction.

Por último, tenemos el evento de cierre, que me indica el cuadro que se ha cerrado.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 26-11-2005
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 24
JXJ Va por buen camino
creo algo más facil.

como el juego en java que puso hectorrandolf

se pueden usar botones y aprovechar sus eventos on click
para activarlos.
y sus propiedades de colores.
y colocarlos sobre una cuadricula dibujada,. en un canvas
solo a modo de como se van a colocar los botones.
y unos botones que la haran como sensores.

Creo se puede usar eso de detecion de colisiones.
si el boton sensor. detecta. que se colisiona con el boton
largo. en el que se ha hecho clik. se pone una bandera.
.. de que se ha puesto. una linea a la derecha o a la izquierda
arriba o abajo. .. lo de IA. como en el juego java.
es otra cosa. que no visualizo bien.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:54:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi