Sortear imagens dentro de TImagem?
Boa tarde amigos delphianos, o meu problema é o seguinte: Tenho 40 figuras dentro de uma pastas chamada minhasfiguras, com os nomes assim figura1, figura2, figura3...ate figura40.
O que eu gostaria é de saber se tem como sortear 6 figuras que estaum dentro desta pasta e jogar em 6 TImagem que estaum dentro de um form. Naum podendo repetir a cada sorteio as mesmas figuras nestes 6 TImagens.
Penso eu que é feito com randomize, mais naum sei como se fazer.
Se alguem puder mi ajudar ficarei grato.
O que eu gostaria é de saber se tem como sortear 6 figuras que estaum dentro desta pasta e jogar em 6 TImagem que estaum dentro de um form. Naum podendo repetir a cada sorteio as mesmas figuras nestes 6 TImagens.
Penso eu que é feito com randomize, mais naum sei como se fazer.
Se alguem puder mi ajudar ficarei grato.
Jlimajr
Curtidas 0
Respostas
Night_man
14/07/2006
var Veses: Integer; Sorteado: String; JaSorteados: TStrings; begin JaSorteados := TStringList.Create; try for Veses := 1 to 6 do begin repeat Sorteado := IntToStr(RandomRange(1, 40)); until (JaSorteados.IndexOf(Sorteado) < 0); JaSorteados.Add(Sorteado); (FindComponent(´Imagem´ + IntToStr(Veses)) as TImage).Picture.LoadFromFile(´Arquivo´ + Sorteado + ´.bmp´); end; finally JaSorteados.Free; end;
GOSTEI 0
Jlimajr
14/07/2006
Amigo grato pela resposta, mais esta função RandomRange tem no Delphi 5?
está dando erro
Sorteado := IntToStr(RandomRange(1, 40));
está dando erro
[Error] Unit1.pas(488): Undeclared identifier: ´RandomRange´
[Fatal Error] Project1.dpr(5): Could not compile used unit ´Unit1.pas´
GOSTEI 0
Adriano Santos
14/07/2006
Amigo grato pela resposta, mais esta função RandomRange tem no Delphi 5?
está dando erro
[quote:284d7501c8][Error] Unit1.pas(488): Undeclared identifier: ´RandomRange´
[Fatal Error] Project1.dpr(5): Could not compile used unit ´Unit1.pas´
[/quote:284d7501c8]Sorteado := IntToStr(RandomRange(1, 40));
Use Random no lugar.
GOSTEI 0
Jlimajr
14/07/2006
Usei o ramdom assim:
Passou na hora de compilar mais quando pesso para sortear, da erro ´Access violation address 0045EE09 in module Project1.exe Read of address 00000128´ e aponta para esta linha.
Sorteado := IntToStr(Random(40));
Passou na hora de compilar mais quando pesso para sortear, da erro ´Access violation address 0045EE09 in module Project1.exe Read of address 00000128´ e aponta para esta linha.
FindComponent(´Imagem´ + IntToStr(Veses)) as TImage).Picture.LoadFromFile(´Arquivo´ + Sorteado + ´.bmp´);
GOSTEI 0
Jlimajr
14/07/2006
Usei o ramdom assim:
Passou na hora de compilar mais quando pesso para sortear, da erro ´Access violation address 0045EE09 in module Project1.exe Read of address 00000128´ e aponta para esta linha.
Sorteado := IntToStr(Random(40));
Passou na hora de compilar mais quando pesso para sortear, da erro ´Access violation address 0045EE09 in module Project1.exe Read of address 00000128´ e aponta para esta linha.
FindComponent(´Imagem´ + IntToStr(Veses)) as TImage).Picture.LoadFromFile(´Arquivo´ + Sorteado + ´.bmp´);
GOSTEI 0
Night_man
14/07/2006
Foi mal, a randomrange esta na unit Math;
assim, random(40), vai sortear um numero >= 0 e <= 39,
pode ser tb, mas dai faz random(40) + 1
Como q eu escrevo VeSes... e ninguem me avisa,
o anarfabetico....
[]´s
assim, random(40), vai sortear um numero >= 0 e <= 39,
pode ser tb, mas dai faz random(40) + 1
Como q eu escrevo VeSes... e ninguem me avisa,
o anarfabetico....
[]´s
GOSTEI 0
Jlimajr
14/07/2006
Ja tinha declarado no uses a bliblioteca Math, só que naum funcionou, ai coloquei o random mesmo. Só que nao consigo entender esta linha
Código:
FindComponent(´Imagem´ + IntToStr(Veses)) as TImage).Picture.LoadFromFile(´Arquivo´ + Sorteado + ´.bmp´);
Porque da erro aqui assim:
´Access violation address 0045EE09 in module Project1.exe Read of address 00000128´
Poderia me dizer o que seria ´Imagem´ e ´Arquivo´. sorteado
Código:
FindComponent(´Imagem´ + IntToStr(Veses)) as TImage).Picture.LoadFromFile(´Arquivo´ + Sorteado + ´.bmp´);
Porque da erro aqui assim:
´Access violation address 0045EE09 in module Project1.exe Read of address 00000128´
Poderia me dizer o que seria ´Imagem´ e ´Arquivo´. sorteado
GOSTEI 0
Night_man
14/07/2006
No Delphi 6, tem essa RandomRange na Math, mas deixa assim...
1º) ´´Imagem´, eh o nome do componente TImegem,
tu deve ter Image1, Image2, Image3, Image4, Image5, Image6,
Se for assim coloque ´Image´ no lugar do ´Imagem´
essa funcao Findcomponent, vai retornar um componente com o nome passado como parametro.
por exemplo findcomponent(´Form1´), vai retornar o componente que tenha como nome Form1.
2º) ´Arquivo´ eh o nome do arquivo, q no teu caso eh ´Figura´, ou seja, carregar o arquivo Figura20.bmp, se o nº 20 for o sorteado.
1º) ´´Imagem´, eh o nome do componente TImegem,
tu deve ter Image1, Image2, Image3, Image4, Image5, Image6,
Se for assim coloque ´Image´ no lugar do ´Imagem´
essa funcao Findcomponent, vai retornar um componente com o nome passado como parametro.
por exemplo findcomponent(´Form1´), vai retornar o componente que tenha como nome Form1.
2º) ´Arquivo´ eh o nome do arquivo, q no teu caso eh ´Figura´, ou seja, carregar o arquivo Figura20.bmp, se o nº 20 for o sorteado.
GOSTEI 0
Jlimajr
14/07/2006
Desculpe a demora em responder.
Cara ficou o bixo mano.
Perfeito, melhor estraga... :D
Fico grato por me ajudar NiGHT_MaN
Cara ficou o bixo mano.
Perfeito, melhor estraga... :D
Fico grato por me ajudar NiGHT_MaN
GOSTEI 0