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

Create TImage = erro!


ZueRa

Pergunta

Saudações galera do SB.

Estou tentando criar um TImage em tempo de execução, mas, não está funcionando e não sei o que há de errado.

Irei mostrar o source:

procedure TfPrincipal.btUploadClick(Sender: TObject);
var
i : integer;
  begin
    jvOpen.Execute;
      for i:=0 to jvOpen.Files.Count-1 do
        begin
          with TImage.Create(Self) do
            begin
              Parent := self;
              Left := 256;
              Top := 40;
              Visible := true;
              //Picture.RegisterFileFormat('.png','Portable Network Graphics',TPngObject);
              Picture.LoadFromFile(jvOpen.Files[i]);
              BringtoFront;
            end;
        end;
  end;

no código em questão, o for foi usado porque quero por exemplo, quando o usuário selecionar 4 imagens serem criados 4 TImage's, um do lado do outro.

Mas, de qualquer forma, nem com uma imagem está funcionando.

Se alguém puder dar um help,

agradeço.

[]'s

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá Jhonas, obrigado pela ajuda.

O problema era apenas um detalhe que deixei passar mesmo, falta de atenção.

Estou tentando criar aqui esse sistema do usuário selecionar X imagens no OpenDialog e forem criadas X TImages pra eles.

Já tentei com for, while mas as TImages são criadas sempre uma em cima da outra, sempre no mesmo lugar.

Tentei fazer algo como (exemplo):

for i:= 0 to 100 do
TImage.Left := posição atual + i

nesse caso, em tese, seriam criadas uma do lado da outra. Mas, como disse anteriormente, não funciona como eu pretendo.

Tem alguma idéia de como posso fazer?

[]'s

Editado por ZueRa
Link para o comentário
Compartilhar em outros sites

  • 0

Left := 256;

for i:= 0 to 100 do
TImage.Left := posição atual + i;

esse caso, em tese, seriam criadas uma do lado da outra. Mas, como disse anteriormente, não funciona como eu pretendo.Tem alguma idéia de como posso fazer?

veja que se a posição Left é 256 voce não pode incrementar esse valor de apenas 1 ( for i )

o certo é a posição Left + o tamanho ( largura do Timage ) + 1 .... para que o proximo timage fique ao lado do primeiro timage

seria o mesmo que voce desenhar um retangulo ao lado de outro ... veja que as medidas do retangulo devem ser as mesmas ... a unica diferença estaria na posição inicial do proximo retangulo.

voce pode fazer uma adaptação do seu código (criação do timage) + o codigo do link, que mostra como posicionar uma imagem lado a lado

http://www.planetadelphi.com.br/dica/1634/...o-fundo-do-form

veja tambem esse link.. vai te dar uma ideia de como proceder

http://www.planetadelphi.com.br/artigo/138/delphi-for-php

abraço

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