C++ Builder com Array de Objetos?

0 respostas
paulovc

Galera, preciso fazer passar uma imagem sequencialmente… Vou ter 8 icones e a cada segundo uma imagem será selecionada, assim que chegar na última volta pra primeira!

Até aí tudo bem, eu fiz! Mas acredito que não no melhor jeito, ou sei lá

As imagens são iguais só pra testar, tá funcionando certinho… A imagem mais clara e com uma borda vermelha simboliza a imagem já selecionada!

Olhem como ficou o código

void __fastcall TForm1::FormCreate(TObject *Sender) { //carrega as imagens iniciais - AP i1->Picture->LoadFromFile(caminho+"i1"+tipo); i2->Picture->LoadFromFile(caminho+"i2"+tipo); i3->Picture->LoadFromFile(caminho+"i3"+tipo); i4->Picture->LoadFromFile(caminho+"i4"+tipo); i5->Picture->LoadFromFile(caminho+"i5"+tipo); i6->Picture->LoadFromFile(caminho+"i6"+tipo); i7->Picture->LoadFromFile(caminho+"i7"+tipo); i8->Picture->LoadFromFile(caminho+"i8"+tipo); tmrtempo->Enabled = !tmrtempo->Enabled; }

Depois no timer:

void __fastcall TForm1::tmrtempoTimer(TObject *Sender) { if(i==1) { i8->Picture->LoadFromFile(caminho+"i8"+tipo); i1->Picture->LoadFromFile(caminho+"i1_2"+tipo); } if(i==2) { i1->Picture->LoadFromFile(caminho+"i1"+tipo); i2->Picture->LoadFromFile(caminho+"i2_2"+tipo); } if(i==3){ i2->Picture->LoadFromFile(caminho+"i2"+tipo); i3->Picture->LoadFromFile(caminho+"i3_2"+tipo); } if(i==4){ i3->Picture->LoadFromFile(caminho+"i3"+tipo); i4->Picture->LoadFromFile(caminho+"i4_2"+tipo); } if(i==5){ i4->Picture->LoadFromFile(caminho+"i4"+tipo); i5->Picture->LoadFromFile(caminho+"i5_2"+tipo); } if(i==6){ i5->Picture->LoadFromFile(caminho+"i5"+tipo); i6->Picture->LoadFromFile(caminho+"i6_2"+tipo); } if(i==7){ i6->Picture->LoadFromFile(caminho+"i6"+tipo); i7->Picture->LoadFromFile(caminho+"i7_2"+tipo); } if(i==8){ i7->Picture->LoadFromFile(caminho+"i7"+tipo); i8->Picture->LoadFromFile(caminho+"i8_2"+tipo); } i++; if(i==9) i=1; }

Não teria como colocar todos os objetos que carregam a imagem com o mesmo nome fazendo um array? Assim seria bem mais fácil de resolver o problema sem usar esse monte de if feio

Existe como? Alguém tem alguma outra solução, por favor?

Desde já muito obrigado!

Criado 17 de julho de 2010
Respostas 0
Participantes 1