Ir para conteúdo
Fórum Script Brasil
  • 0

Concatenar Image Urgente


rafael martins

Pergunta

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

  • 0
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

Colega 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

end

end;

Valeu ?

Link para o comentário
Compartilhar em outros sites

  • 0
AMigo não estou conseguindo. sera que funciona no delphi 7?

ComponentCount -1 não esta alguma coisa errada?

obrigado

Colega ... este codigo funciona perfeitamente no delphi 3,5,e 7 eu testei no delphi 7 sem problemas ..ok? quando você roda o que acontece ?

Link para o comentário
Compartilhar em outros sites

  • 0

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 por Micheus
Adicionadas as tag's de código ([code]..[/code]) para melhor visualização - favor observá-las!
Link para o comentário
Compartilhar em outros sites

  • 0
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 por Micheus
Adicionadas as tag's de código ([code]..[/code]) para melhor visualização - favor observá-las!
Link para o comentário
Compartilhar em outros sites

  • 0
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 por Micheus
Adicionadas as tag's de código ([code]..[/code]) para melhor visualização - favor observá-las!
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Jonas --

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...

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --HDELPHI --

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 ?

Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...