![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola blackterfly.
Creo que es mas versátil usar TObjectList en lugar de un arreglo. Te pongo un ejemplo simple de como podes hacerlo, agrega un TImage y un TButton al form: Código:
...
#include <jpeg.hpp>
...
TObjectList *ObjLst;
int NroImg = 0; //imágenes cargadas
/* Cargar imágenes en ObjectList */
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TSearchRec sr;
AnsiString path = "C:\\Users\\User\\Pictures\\"; // Ruta a una carpeta con imágenes .jpg
randomize();
Image1->Stretch; // sólo si deseas ajustar la imágen
ObjLst = new TObjectList;
if (FindFirst(path + "*.JPG", faArchive, sr) == 0)
do {
TImage *Img = new TImage(this);
Img->Picture->LoadFromFile(path +sr.Name);
ObjLst->Add(Img);
NroImg++;
} while (FindNext(sr) == 0);
}
/* Mostrar imágenes cargadas (índice aleatorio) */
void __fastcall TForm1::btnShowImagesClick(TObject *Sender) {
Image1->Picture = ((TImage*)ObjLst->Items[random(NroImg)])->Picture;
}
/* Liberar memoria al finalizar */
void __fastcall TForm1::FormDestroy(TObject *Sender) {
ObjLst->Clear();
delete ObjLst;
}
![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#2
|
|||
|
|||
|
Hola.
Muchas gracias por contestar. Me voy a poner enseguida a ver que tal es la solución que me das. Gracias. |
|
#3
|
|||
|
|||
|
Tenía que haber respondido antes pero es que he tenido unos problemas de conexión de
internet acojonantes... bueno, cosas de los domingos. Bueno, he probado usando el array de objetos que me recomiendas, y si es verdad que da mucho juego pues tiene unas opciones muy variadas y muy utiles, pero resulta que el código que he transpolado a mi programa me da un error que no pillo. De esta forma todo funciona perfecto, de hecho será la que voy a utilizar. AnsiString archivo="a"; // Esto es porque la serie de imagenes se llamaran a,aa,aaa,aaaa,etc... for ( int x=0; x<5; x++) { TImage *Img = new TImage(this); Img->Picture->LoadFromFile(archivo+".jpg"); ObjLst->Add(Img); numero++; archivo = archivo + "a"; } Pero necesito entenderlo todo, y cuando estaba cambiando las cosas empece a hacer lo siguiente: TImage *Img = new TImage(this); Img->Picture->LoadFromFile("a.jpg"); ObjLst->Add(Img); TImage *Img = new TImage(this); Img->Picture->LoadFromFile("aa.jpg"); ObjLst->Add(Img); ERROR: Doble declaración de Img. ¿ No debo declararla cada vez al igual que en el bucle ? Última edición por blackterfly fecha: 07-10-2012 a las 23:55:31. |
|
#4
|
||||
|
||||
|
Recuerda poner los tags al código fuente, ejemplo:
![]() Gracias ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#5
|
||||
|
||||
|
Hola blackterfly.
Es que en el código anterior cometí una equivocación, la declaración tendría que haber estato fuera del ciclo: Código:
/* Cargar imágenes en ObjectList */
void __fastcall TForm1::FormCreate(TObject *Sender) {
TSearchRec sr;
TImage *Img; // <- Aqui
randomize();
Image1->Stretch; // sólo si deseas ajustar la imágen
ObjLst = new TObjectList;
if (FindFirst(path + "*.JPG", faArchive, sr) == 0)
do {
Img = new TImage(this);
Img->Picture->LoadFromFile(path +sr.Name);
ObjLst->Add(Img);
NroImg++;
} while (FindNext(sr) == 0);
}
Código:
TImage *Img = new TImage(this); Img->Picture->LoadFromFile(path +"a.jpg"); ObjLst->Add(Img); Img = new TImage(this); Img->Picture->LoadFromFile(path +"aa.jpg"); ObjLst->Add(Img);
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Es posible crear un array de TCheckBox? | Negriz | C++ Builder | 5 | 22-04-2009 18:01:02 |
| Crear Imagenes en ejecución | Drake | OOP | 7 | 01-07-2007 21:50:23 |
| Crear "Array of Const" programáticamente | dec | Trucos | 0 | 30-06-2006 15:20:18 |
| crear array | Cosgaya | Varios | 3 | 10-02-2006 11:09:53 |
| crear array de groupbox en tiempo de ejecución | abogado | Varios | 1 | 21-03-2005 11:27:43 |
|