rafael martins Postado Junho 11, 2007 Denunciar Share Postado Junho 11, 2007 Ola amigos estou com um problema que não estou conseguindo resolver de maneira alguma.Algem poderia me ajudar?meu problema é o seguinteestou querendo concatenar um image.Por exemplo:varn : integer;for n :=0 to 20 do beginimage+n.Picture.LoadFromFile('10.jpg');end;como vocês podem ver eu gostaria de colocar a img 10.jpg para todos os image que eu tenho.Teria como fazer isso?POr favor espero que alguém possa me ajudar pois eu estou focando loco já...OBRIGADO Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HDELPHI Postado Junho 11, 2007 Denunciar Share Postado Junho 11, 2007 Ola amigos estou com um problema que não estou conseguindo resolver de maneira alguma.Algem poderia me ajudar?meu problema é o seguinteestou querendo concatenar um image.Por exemplo:varn : integer;for n :=0 to 20 do beginimage+n.Picture.LoadFromFile('10.jpg');end;como vocês podem ver eu gostaria de colocar a img 10.jpg para todos os image que eu tenho.Teria como fazer isso?POr favor espero que alguém possa me ajudar pois eu estou focando loco já...OBRIGADOColega faça desta maneira:procedure TForm1.BitBtn1Click(Sender: TObject);var i : Integer;begin for i := 0 to ComponentCount -1 do begin if Components is TImage then TImage(Components).Picture.LoadFromFile('c:\adm\bmps\agenda.bmp');// caminho da figura endend;Valeu ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rafael martins Postado Junho 11, 2007 Autor Denunciar Share Postado Junho 11, 2007 AMigo não estou conseguindo. sera que funciona no delphi 7?ComponentCount -1 não esta alguma coisa errada?obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HDELPHI Postado Junho 12, 2007 Denunciar Share Postado Junho 12, 2007 AMigo não estou conseguindo. sera que funciona no delphi 7?ComponentCount -1 não esta alguma coisa errada?obrigadoColega ... este codigo funciona perfeitamente no delphi 3,5,e 7 eu testei no delphi 7 sem problemas ..ok? quando você roda o que acontece ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rafael martins Postado Junho 12, 2007 Autor Denunciar Share Postado Junho 12, 2007 (editado) Ola amigo agora de certoo...Muito obrigado pela ajuda.Folgando um poco to com otro problema. é o seguinte eu estou fazendo um jogo da memoria para a escola e eu estou com outro problema. quando eu clico uma vez na imagem para mudar na proxima vez eu tenho que clicar duas vezes e na proxima 3 e assim vai. porque sera? olha o codigo como esta em cada imagem.var num: integer; i: integer; cont: integer; begin if pos[1,2] = 0 then // pos[x,2] begin image1.Picture.LoadFromFile( floattostr(pos[1,1]) + '.jpg'); // imagex pos[x,1] pos[1,2] := 1; //pos[x,2] certo := pos[1,3]; // pos[x,3] end else begin image1.Picture.LoadFromFile( '10.jpg'); //imagex pos[1,2] := 0; //pos[x,2] certo := pos[1,3]; //pos[x,3] end; for cont:=1 to 20 do begin if pos[cont,2] = 1 then begin if cont <> 1 then // cont <> x begin if pos[cont,1] = pos[1,1] then // pos[cont,1] = pos[x,1] begin image1.Enabled := false; TImage(Components[certo]).Enabled := false; num := strtoint(label2.Caption); num := num + 5; label2.caption := inttostr(num); end else begin application.ProcessMessages; sleep(500); image1.Picture.LoadFromFile('10.jpg'); TImage(Components[certo]).Picture.LoadFromFile('10.jpg');// caminho da figura end; end; end; end; end;veja se você entendeu. sera que você sabe o que pode esta acontecendo?só falta isso para que o programa fique perfeito.Tem como me ajudar?Obrigado Editado Junho 12, 2007 por Micheus Adicionadas as tag's de código ([code]..[/code]) para melhor visualização - favor observá-las! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 HDELPHI Postado Junho 12, 2007 Denunciar Share Postado Junho 12, 2007 (editado) Ola amigo agora de certoo...Muito obrigado pela ajuda.Folgando um poco to com otro problema. é o seguinte eu estou fazendo um jogo da memoria para a escola e eu estou com outro problema. quando eu clico uma vez na imagem para mudar na proxima vez eu tenho que clicar duas vezes e na proxima 3 e assim vai. porque sera? olha o codigo como esta em cada imagem.var num: integer; i: integer; cont: integer; begin if pos[1,2] = 0 then // pos[x,2] begin image1.Picture.LoadFromFile( floattostr(pos[1,1]) + '.jpg'); // imagex pos[x,1] pos[1,2] := 1; //pos[x,2] certo := pos[1,3]; // pos[x,3] end else begin image1.Picture.LoadFromFile( '10.jpg'); //imagex pos[1,2] := 0; //pos[x,2] certo := pos[1,3]; //pos[x,3] end; for cont:=1 to 20 do begin if pos[cont,2] = 1 then begin if cont <> 1 then // cont <> x begin if pos[cont,1] = pos[1,1] then // pos[cont,1] = pos[x,1] begin image1.Enabled := false; TImage(Components[certo]).Enabled := false; num := strtoint(label2.Caption); num := num + 5; label2.caption := inttostr(num); end else begin application.ProcessMessages; sleep(500); image1.Picture.LoadFromFile('10.jpg'); TImage(Components[certo]).Picture.LoadFromFile('10.jpg');// caminho da figura end; end; end; end; end; veja se você entendeu. sera que você sabe o que pode esta acontecendo? só falta isso para que o programa fique perfeito. Tem como me ajudar? Obrigado Rafael ... voce está complicando o codigo sem necessidade ... Dica: crie uma variavel global ex: fig : integer e depois em cada image coloque no evento on clique fig := 1 , fig := 2, e assim por diante ... depois acrescente este codigo em cada image para testar se as figuras são iguais; for j := 0 to ComponentCount -1 do begin if Components[i] is TImage then if TImage(Components[i]).Picture = TImage(Components[5]).Picture then // coloque o numero estatico da figura //(neste //caso a figura 5) showmessage('ACERTOU') else showmessage('ERROU') end;Espero que isso te ajude .... Editado Junho 12, 2007 por Micheus Adicionadas as tag's de código ([code]..[/code]) para melhor visualização - favor observá-las! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rafael martins Postado Junho 14, 2007 Autor Denunciar Share Postado Junho 14, 2007 (editado) Ola amigo agora de certoo...Muito obrigado pela ajuda.Folgando um poco to com otro problema. é o seguinte eu estou fazendo um jogo da memoria para a escola e eu estou com outro problema. quando eu clico uma vez na imagem para mudar na proxima vez eu tenho que clicar duas vezes e na proxima 3 e assim vai. porque sera? olha o codigo como esta em cada imagem.var num: integer; i: integer; cont: integer; begin if pos[1,2] = 0 then // pos[x,2] begin image1.Picture.LoadFromFile( floattostr(pos[1,1]) + '.jpg'); // imagex pos[x,1] pos[1,2] := 1; //pos[x,2] certo := pos[1,3]; // pos[x,3] end else begin image1.Picture.LoadFromFile( '10.jpg'); //imagex pos[1,2] := 0; //pos[x,2] certo := pos[1,3]; //pos[x,3] end; for cont:=1 to 20 do begin if pos[cont,2] = 1 then begin if cont <> 1 then // cont <> x begin if pos[cont,1] = pos[1,1] then // pos[cont,1] = pos[x,1] begin image1.Enabled := false; TImage(Components[certo]).Enabled := false; num := strtoint(label2.Caption); num := num + 5; label2.caption := inttostr(num); end else begin application.ProcessMessages; sleep(500); image1.Picture.LoadFromFile('10.jpg'); TImage(Components[certo]).Picture.LoadFromFile('10.jpg');// caminho da figura end; end; end; end; end; veja se você entendeu. sera que você sabe o que pode esta acontecendo? só falta isso para que o programa fique perfeito. Tem como me ajudar? Obrigado Rafael ... voce está complicando o codigo sem necessidade ... Dica: crie uma variavel global ex: fig : integer e depois em cada image coloque no evento on clique fig := 1 , fig := 2, e assim por diante ... depois acrescente este codigo em cada image para testar se as figuras são iguais; for j := 0 to ComponentCount -1 do begin if Components[i] is TImage then if TImage(Components[i]).Picture = TImage(Components[5]).Picture then // coloque o numero estatico da figura //(neste //caso a figura 5) showmessage('ACERTOU') else showmessage('ERROU') end; Espero que isso te ajude .... Ola amigo eu entendi o que você quis dizer. no meu ta dando certo essa parte de testar as img se são iguais. só que por exemplo no caso de dar errado ela tem que atribuir ao image a imagem 10.jpg (que é a em branco) e quando ele atribui essa imagem ao image ele fico com esse problema de ter que clicar duas vezes na proxima vez que for clicar nela. intendeu o que eu quiz dizer? nesse caso aqui: if pos[cont,1] = pos[1,1] then // pos[cont,1] = pos[x,1] begin image1.Enabled := false; TImage(Components[certo]).Enabled := false; num := strtoint(label2.Caption); num := num + 5; label2.caption := inttostr(num); end else begin application.ProcessMessages; sleep(500); image1.Picture.LoadFromFile('10.jpg'); TImage(Components[certo]).Picture.LoadFromFile('10.jpg');// caminho da figura end;se der falso ele atribui a img inicial para que as duas img deem a impresao de estarem desvirando.a minha logico eu criei uma matriz e coloquei um randometro para sortear os valores das imagens de 1 ateh 10 que é o numero de figuras que eu tenho. ai ele guarda tudo na matriz que eu acho que fica melhor para pode manuzear depois.você entendeu meu problema?é só essa parte de voltar pra img inicial que ta dano esse erro eu acho.não sei porque.sera que você pode me ajudar?OBRIGADO Editado Junho 15, 2007 por Micheus Adicionadas as tag's de código ([code]..[/code]) para melhor visualização - favor observá-las! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Jonas -- Postado Junho 14, 2007 Denunciar Share Postado Junho 14, 2007 Vamos fazer uma analise:neste comando : TImage(Components[certo]).Enabled := false;quando você habilita ele novamente?neste comando : certo := pos[1,3]; quando certo assume outro valor ?neste comando: image1.Picture.LoadFromFile('10.jpg');porque somente o image1 é carregado com a figura ?? e os outros image ....????vendo este codigo e ele se repete para os outros image, voce tera o mesmo codigo clicando em qualquer um deles .. é isso ?voce esta desabilitando : image1.Enabled := false;TImage(Components[certo]).Enabled := false;habilita novamente aonde ????num := num + 5;quando voce zera novamente esta variavel ? qual é o valor de x dentro da matriz ???estou fazendo estas perguntas para poder entender o seu codigo .... porque você não usa um contador de cliques do mouse para poder ter um controle mais preciso ??? ou seja a cada dois cliques voce zera o contador e testa as figuras... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rafael martins Postado Junho 14, 2007 Autor Denunciar Share Postado Junho 14, 2007 Vamos fazer uma analise:neste comando : TImage(Components[certo]).Enabled := false;quando você habilita ele novamente?Este é para quando as duas imagen sforem verdadeiras ele dexa as imagen s que foram verdadeiras desabilitadas para não poder mais clicar e elas vao ficar visiveis para o usuario.neste comando : certo := pos[1,3]; quando certo assume outro valor ?Esse valor é passado pra essa variavel para eu saber qual a imagem que foi clicada antes de da ultima que eu cliquei para eu poder saber qual a img que eu to associando para poder ver se são verdadeiras. esses valores tão todos dentro da matriz.neste comando: image1.Picture.LoadFromFile('10.jpg');porque somente o image1 é carregado com a figura ?? e os outros image ....????porque nesse caso esse codigo eu tirei da image1. e quando for falso vai atribuir a img inicial.e na outra linha pode ver que vai atribuir a img inicial para a outra que já foi clicada caso não sejam iguais.vendo este codigo e ele se repete para os outros image, voce tera o mesmo codigo clicando em qualquer um deles .. é isso ?Isso só estou mudando os valores de cada img na matriz.voce esta desabilitando : image1.Enabled := false;TImage(Components[certo]).Enabled := false;habilita novamente aonde ????esse não habilita somente se ele inicializa de novo o programa. ai volta no inicio. pois esse comando esta para desabilitar as img que seram verdadeiras.num := num + 5;quando voce zera novamente esta variavel ? esse num é só para dar 5 ponto para a pessoa se ela acertar.qual é o valor de x dentro da matriz ???esses valores x que estao comentados no final de algumas linhas é so para eu saber quando eu for copiar esses codigos para cada img e que eu tenho que modificar para cada img.estou fazendo estas perguntas para poder entender o seu codigo .... porque você não usa um contador de cliques do mouse para poder ter um controle mais preciso ??? ou seja a cada dois cliques voce zera o contador e testa as figuras...este jeito esta funcionado mas só tem esse problema d ter que clicar duas vezes na img para ela abrir apos ter clicado nela já uma vez.deu para entender?desculpe se a minha logica não é muito apurada pois eu estou estudando ainda. isso na verdade é um trabalho para a escola.Vlwww Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --HDELPHI -- Postado Junho 15, 2007 Denunciar Share Postado Junho 15, 2007 Amigo .. pelo que percebi do seu codigo o problema esta na troca de imagens em cima do mesmo image, por isso você esta tendo que clicar mais de uma vez; se a parte da escolha randomica das figuras esta correto eu sugiro que voce use mais um componete image sobreposto que guardar exclusivamente a figura em branco deixando o image de baixo com a figura original, desta maneira o controle do clique fica somente na figura de cima ... ou seja , voce clica e deixa o image de cima visible := false aparecendo a figura de baixo .... a mesma coisa com a proxima figura, somente então você testa se os images que estão aparecendo são iguais , se não forem basta tornar os images de cima visible := true ..... deu pra entender ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rafael martins Postado Junho 16, 2007 Autor Denunciar Share Postado Junho 16, 2007 Amigo .. pelo que percebi do seu codigo o problema esta na troca de imagens em cima do mesmo image, por isso você esta tendo que clicar mais de uma vez; se a parte da escolha randomica das figuras esta correto eu sugiro que voce use mais um componete image sobreposto que guardar exclusivamente a figura em branco deixando o image de baixo com a figura original, desta maneira o controle do clique fica somente na figura de cima ... ou seja , voce clica e deixa o image de cima visible := false aparecendo a figura de baixo .... a mesma coisa com a proxima figura, somente então você testa se os images que estão aparecendo são iguais , se não forem basta tornar os images de cima visible := true ..... deu pra entender ?Ola amigo obrigado por me responder.é eu pensei nisso mesmo. mas puts vai dar um trampo pra eu fazer por isso que eu não testei.mas acho que vai ter que ser desse jeito mesmo.sera que não tem otro jeito não?brigadao Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
rafael martins
Ola amigos estou com um problema que não estou conseguindo resolver de maneira alguma.
Algem poderia me ajudar?
meu problema é o seguinte
estou querendo concatenar um image.
Por exemplo:
var
n : integer;
for n :=0 to 20 do begin
image+n.Picture.LoadFromFile('10.jpg');
end;
como vocês podem ver eu gostaria de colocar a img 10.jpg para todos os image que eu tenho.
Teria como fazer isso?
POr favor espero que alguém possa me ajudar pois eu estou focando loco já...
OBRIGADO
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.