Jump to content
Fórum Script Brasil
  • 0

Create TImage = erro!


ZueRa

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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

Edited by ZueRa
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...