Timage e Visualizador
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.
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
Curtidas 0
Respostas
Joel Rodrigues
28/02/2012
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.
Para abrir no visualizador do Windows, tente enviar um comando para abrir a imagem, creio que o WinExec sirva para isso.
Boa sorte.
GOSTEI 0
Rodolfo Silva
28/02/2012
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
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
GOSTEI 0
Joel Rodrigues
28/02/2012
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í.
Teste aí.
GOSTEI 0
Joel Rodrigues
28/02/2012
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.
Com isso, se a imagem ficar muito grande, o ScrollBox apresentará barras de rolagem.
Boa sorte.
GOSTEI 0
Rodolfo Silva
28/02/2012
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?
VisuImagem.VImage.Picture.LoadFromFile(OpenFoto.FileName);
VisuImagem.Show;
mas esta dando como variaveis nao declaradas.
oque pode estar errado?
GOSTEI 0
Joel Rodrigues
28/02/2012
Que variáveis não estão declaradas?
Você instanciou o form antes de carregar a imagem?
Você instanciou o form antes de carregar a imagem?
GOSTEI 0
Rodolfo Silva
28/02/2012
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
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
GOSTEI 0
Joel Rodrigues
28/02/2012
Mostre o trecho de código completo.
E quais variáveis ele diz que não estão declaradas?
E quais variáveis ele diz que não estão declaradas?
GOSTEI 0
Joel Rodrigues
28/02/2012
Te mandei um código por email, verifique se lhe ajuda.
GOSTEI 0
Rodolfo Silva
28/02/2012
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!
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!
GOSTEI 0
Joel Rodrigues
28/02/2012
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.
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.
GOSTEI 0