Fórum Timage e Visualizador #413455

28/02/2012

0

Boa Noite a Todos.
Eu tenho um Timage que quando eu carrego uma imagem nele, ele salva a imagem em uma pasta e salva o nome da imagem no banco de dados. até aqui tudo bem.

Mas eu queria saber como que eu faço para que quando eu clicar no Timage fosse aberto a imagem no tamanho original, tipo visualizador mesmo, ou em outro form, porem no tamanho original(grande).

Obrigado pela atenção.
Rodolfo Silva

Rodolfo Silva

Responder

Posts

28/02/2012

Joel Rodrigues

Cara, se você definir o Autosize do TImage para true, ele assumirá o tamanho original. A partir daí você pode redimensionar o form ou proceder da forma como desejar.
Para abrir no visualizador do Windows, tente enviar um comando para abrir a imagem, creio que o WinExec sirva para isso.

Boa sorte.
Responder

Gostei + 0

29/02/2012

Rodolfo Silva

Bom Dia,

winExec pode ser, mas eu queria mesmo era que quando eu clicasse no meu Timage no Form 1, fosse aberto no Form 2 a imagem no tamanho grande..
Tem como fazer isso?

Obrigado
Responder

Gostei + 0

29/02/2012

Joel Rodrigues

Foi o que eu falei inicialmente: se você definir o AutoSize como true, ao carregar a imagem, o TImage ficará com o tamanho original. A partir daí você redimensiona o form ou procede da forma que achar melhor.
Teste aí.
Responder

Gostei + 0

29/02/2012

Joel Rodrigues

Ponha um ScrollBox com Align=alClient no form onde a imagem será aberta e defina um tamanho inicial para o form. Coloque o TImage dentro do ScrollBox e defina o AutoSize para true, Left=0 e Top=0.
Com isso, se a imagem ficar muito grande, o ScrollBox apresentará barras de rolagem.

Boa sorte.
Responder

Gostei + 0

29/02/2012

Rodolfo Silva

tentei usar este codigo para abrir a imagem do Timage no form 1 no outro form no tamanho maior:


VisuImagem.VImage.Picture.LoadFromFile(OpenFoto.FileName);
VisuImagem.Show;

mas esta dando como variaveis nao declaradas.
oque pode estar errado?
Responder

Gostei + 0

29/02/2012

Joel Rodrigues

Que variáveis não estão declaradas?
Você instanciou o form antes de carregar a imagem?
Responder

Gostei + 0

01/03/2012

Rodolfo Silva

instanciei mas nao deu nao.
Porque este script que mostrei é pra que quando eu clicar no timage no formi1, ele vai abrir a imagem em outro form.
tem outro codigo pra isso?
to usando o delphi xe
obrigado
Responder

Gostei + 0

01/03/2012

Joel Rodrigues

Mostre o trecho de código completo.
E quais variáveis ele diz que não estão declaradas?
Responder

Gostei + 0

01/03/2012

Joel Rodrigues

Te mandei um código por email, verifique se lhe ajuda.
Responder

Gostei + 0

01/03/2012

Rodolfo Silva

Obrigado Joel.
Vai ser de Grande Ajuda!
É exatamente oque eu queria!

Ah se estiver alguém com a mesma duvida, deixa um post que mando o exemplo!

Obrigado e Sucesso!
Responder

Gostei + 0

02/03/2012

Joel Rodrigues

Bem, estou postando o código que enviei para o Rodolfo para compartilhar com outras pessoas que futuramente possam precisar.
Dividirei em tópicos para facilitar a compreensão.

1) Em um form, adicionei um TImage com tamanho reduzido e Stretch=true (para redimensionar a imagem para um tamanho menor);
2) Adicionei um segundo form (frmVisualizador) com as seguintes propriedades modificadas: Position=poScreenCenter, Width=800, Height=600 (dimensões mínimas iniciais);
3) Ao segundo form, adicionei um TScrollBox com Align=alClient e dentro deste ScrollBox, coloquei um TImage (imgImagem) com Left=0 e Top=0 (tamanho indiferente) e AutoSize=true (redimensionará o TImage para o tamanho real do arquivo);
4) No evento onClick do TImage do primeiro form, codifiquei da seguinte forma:
---
frmVisualizador := TfrmVisualizador.Create(Self);
frmVisualizador.imgImagem.Picture := (Sender as TImage).Picture;
frmVisualizador.ShowModal();
FreeAndNil(frmVisualizador);
---

5) No evento onShow do segundo form (frmVisualizador), defini o seguinte código:
---
if (imgImagem.Width < Screen.Width - 20 ) and (imgImagem.Height < Screen.Height - 20) then //reduzi 20px para descontar as bordas da janela e a barra de tarefas do Windows, não é um valor exato, é preciso verificar
begin
Self.Width := imgImagem.Width; //Aqui você pode somar/subtrair algum fator de correção
Self.Height := imgImagem.Height; //Aqui você pode somar/subtrair algum fator de correção
end;
---

Bem, é isso aí.
Espero que possa ajudar outros no futuro.
Grande abraço a todos e fiquem com Deus.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar