Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-08-2011
WhiteJack WhiteJack is offline
Registrado
NULL
 
Registrado: ago 2011
Posts: 7
Poder: 0
WhiteJack Va por buen camino
Unhappy Manejo de Objetos TImage en Arreglo o Similar

Saludos Amigos,

Soy nuevo en el foro y en la programación en C++, estoy trabajando con builder C++ 6, haciendo una pequeña aplicación, es un juego el cual tiene un tablero compuesto de varias imágenes, estoy tratando de crear un arreglo de objetos TImage para luego recorrerlo y asignarles tamaño y posición en el tablero, el usuario al darle click sobre alguna de estas imágenes reasignara de una manera especifica, se podría pensar en un juego como buscaminas, memoria o alguno similar. Se puede hacer lo que planteo o tengo a arrastrar con editor cada imagen y trabajarlas individualmente?

Gracias por su tiempo.
Responder Con Cita
  #2  
Antiguo 03-08-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Bienvenido a los foros de Club Delphi, te recomiendo que le des una leida a la Guía de Estilo.

Sobre tu duda, si se puede hacer lo que comentas. Puedes cargar las imágenes desde disco usando los métodos que proporciona la clase TBitmap (LoadFromFile).



Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #3  
Antiguo 03-08-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Hola. Revisa TComponentList.

Saludos.
Responder Con Cita
  #4  
Antiguo 03-08-2011
WhiteJack WhiteJack is offline
Registrado
NULL
 
Registrado: ago 2011
Posts: 7
Poder: 0
WhiteJack Va por buen camino
Gracias por responder amigos,

estaba probando agregar algo asi en Unit1.h un TImage *ImageM[5][5] y luego en Unit1.cpp

Código:
for(int i=0;i<5;i++){
                for(int j=0;j<5;j++){
                        ImageM[i][j]=TImage.Create(Form1);
                        //ImageM[i][j]->SetBounds(10*i,10*j,10,10);
                }
        }
pero no funciona.
Responder Con Cita
  #5  
Antiguo 03-08-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Para poder ver las imágenes en el formulario, tienes que asignarles su propiedad Parent:

Código PHP:
ImageM[i][j]->Parent Form1

Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #6  
Antiguo 03-08-2011
WhiteJack WhiteJack is offline
Registrado
NULL
 
Registrado: ago 2011
Posts: 7
Poder: 0
WhiteJack Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje
Hola...

Para poder ver las imágenes en el formulario, tienes que asignarles su propiedad Parent:

Código PHP:
ImageM[i][j]->Parent Form1
Saludos...
Gracias maeyanes, la linea me da un error de Violacion de Acceso!, a que se podra deber.
Responder Con Cita
  #7  
Antiguo 03-08-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Tal y como lo planteas, en un array estático, debes hacerlo así:

Código:
   #include <jpeg.hpp>
//.........................................

   TImage* ImageM[5][5];

   for(int i=0;i<5;i++){
      for(int j=0;j<5;j++){
          ImageM[i][j] = new TImage(this);
          ImageM[i][j]->Parent = Form1;
          ImageM[i][j]->SetBounds(10*i,10*j,10,10);
          ImageM[i][j]->Picture->LoadFromFile("img.jpg");
      }
   }
En Builder un componente, como lo es TImage, es un puntero. Debes realizar un array de punteros...


Saludos.
Responder Con Cita
  #8  
Antiguo 03-08-2011
WhiteJack WhiteJack is offline
Registrado
NULL
 
Registrado: ago 2011
Posts: 7
Poder: 0
WhiteJack Va por buen camino
Cita:
Empezado por escafandra Ver Mensaje
Tal y como lo planteas, en un array estático, debes hacerlo así:

Código:
   #include <jpeg.hpp>
//.........................................

   TImage* ImageM[5][5];

   for(int i=0;i<5;i++){
      for(int j=0;j<5;j++){
          ImageM[i][j] = new TImage(this);
          ImageM[i][j]->Parent = Form1;
          ImageM[i][j]->SetBounds(10*i,10*j,10,10);
          ImageM[i][j]->Picture->LoadFromFile("img.jpg");
      }
   }
En Builder un componente, como lo es TImage, es un puntero. Debes realizar un array de punteros...


Saludos.
Gracias escafandra y a los demas en general, ha funcionado perfectamente! pero ahora me ha surgido la duda de como agregar el evento a esto arreglo, ya que el mismo no aparece en el Object Inspector, por ejemplo un OnClick ImageM[i][j]->OnClick ??.
Responder Con Cita
  #9  
Antiguo 03-08-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Código:
//---------------------------------------------------------------------------
void __fastcall TForm1::Imagelick(TObject *Sender)
{
  Beep();
  Label->Caption = ((TImage*)Sender)->Name;
}


void __fastcall TForm1::Button1Click(TObject *Sender)
{
   TImage* ImageM[5][5];

   for(int i=0;i<5;i++){
      for(int j=0;j<5;j++){
          ImageM[i][j] = new TImage(this);
          ImageM[i][j]->Parent = Form1;
          ImageM[i][j]->OnClick = Imagelick;
          ImageM[i][j]->SetBounds(10*i,10*j,10,10);
          ImageM[i][j]->Picture->LoadFromFile("img.jpg");
          ImageM[i][j]->Name = "ImageM"+IntToStr(i)+IntToStr(j);
      }
   }
}
//---------------------------------------------------------------------------

Saludos.
Responder Con Cita
  #10  
Antiguo 03-08-2011
WhiteJack WhiteJack is offline
Registrado
NULL
 
Registrado: ago 2011
Posts: 7
Poder: 0
WhiteJack Va por buen camino
Wink

Todo a funcionado perfectamente, ya solo me resta agregar la logica para el pequeño juego.

Gracias nuevamente a todos.
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Duda sobre destrucción de objetos compuestos por otros objetos noob OOP 11 16-02-2009 00:28:33
Copiar Bitmap de un TImage a otro TImage quinqui Gráficos 2 24-01-2008 15:22:30
Manejo de dos Timage adelaida Gráficos 2 04-11-2005 18:48:12
Manejo de escala con el componente Timage. gustavoracho Gráficos 1 01-09-2005 16:30:17
arreglo de TImage zuriel_zrf Gráficos 3 05-02-2005 00:14:50


La franja horaria es GMT +2. Ahora son las 07:52:10.


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