ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Mostrando documento salvo num timage

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
gtramonte
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 27 de Setembro de 2010
Mensagens: 117

MensagemEnviada: Dom Jul 30, 2017 7:11 pm    Assunto: Mostrando documento salvo num timage Responder com Citação

Caros colegas! Tenho um sistema feito em Delphi com Firebird. Num determinado form salvo um documento digitalizado no endereço abaixo:

C:\STRSM\Documentos\CPF 123.456.789-10

O Nome do documento que salvo é :

28-07-2017 10.26.jpg

Estou salvando tambem dessa mesma forma no banco de dados:

28-07-2017 10.26.jpg

Agora preciso entrar no form de consulta e trazer esse arquivo com o documento dentro de um timage. Alguém pode me dizer como fazer isso? como ficaria o comando para buscar esse documento?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Seg Jul 31, 2017 8:43 am    Assunto: Responder com Citação

Por ser uma imagem JPG, provavelmente você vai precisar declarar a biblioteca JPEG.

Pra exibir a imagem em um TImage você faria assim:
Código:
 SeuTImage.Picture.LoadFromFile(SuaQuery.FieldByName('CampoStringImagem').AsString);
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gtramonte
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 27 de Setembro de 2010
Mensagens: 117

MensagemEnviada: Seg Jul 31, 2017 9:44 am    Assunto: Responder com Citação

a bibliotéca está declarada. Porém da um erro e não localiza o arquivo. Lembrando que a imagem não está salva no banco, somente na pasta.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Seg Jul 31, 2017 9:55 am    Assunto: Responder com Citação

Provavelmente o caminho passado para o LoadFromFile não está completo, ex:

Caso a imagem esteja em 'C:\Imagens' e o nome do arquivo seja 'Teste.jpg' no LoadFromFile eu preciso passar 'C:\Imagens\Teste.jpg' se eu passar apenas 'Teste.jpg' o sistema vai procurar o arquivo na mesma pasta em que o executável se encontra.

Caso o caminho passado para o LoadFromFile esteja completo e correto, posta como ficou o seu código e qual o erro exibido.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gtramonte
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 27 de Setembro de 2010
Mensagens: 117

MensagemEnviada: Seg Jul 31, 2017 11:23 am    Assunto: Responder com Citação

Leo! Vou tentar explicar melhor pra você, pois acho que fiz uma confusão:

o arquivo .jpg está salvo nesse caminho:

C:\STRSM\Documentos\CPF 123.456.789-10\28-07-2017 10.26.jpg

e também no banco de dados assim:

28-07-2017 10.26.jpg

Eu entro e faço a consulta, mostra no grid o arquivo salvo no banco:

28-07-2017 10.26.jpg

eu quero clicar no grid em cima desse item e mostrar num timage o .jpg que está salvo na pasta, pq somente la é que está a imagem.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Seg Jul 31, 2017 11:34 am    Assunto: Responder com Citação

gtramonte escreveu:
Leo! Vou tentar explicar melhor pra você, pois acho que fiz uma confusão:

o arquivo .jpg está salvo nesse caminho:

C:\STRSM\Documentos\CPF 123.456.789-10\28-07-2017 10.26.jpg

e também no banco de dados assim:

28-07-2017 10.26.jpg

Eu entro e faço a consulta, mostra no grid o arquivo salvo no banco:

28-07-2017 10.26.jpg

eu quero clicar no grid em cima desse item e mostrar num timage o .jpg que está salvo na pasta, pq somente la é que está a imagem.


e é exatamente isso que o código faz, porém como no banco de dados está apenas o nome do arquivo sem o seu caminho, você vai precisar passar o caminho fixo ex:

Código:
 
var
  FilePath: String;
begin
  FilePath := 'C:\STRSM\Documentos\CPF 123.456.789-10\';
 SeuTImage.Picture.LoadFromFile(FilePath + SuaQuery.FieldByName('CampoStringImagem').AsString);
end;


Se pegar apenas o conteúdo gravado no banco, o LoadFromFile ficaria assim:
SeuTImage.Picture.LoadFromFile('28-07-2017 10.26.jpg ');

enquanto que para o mesmo funcionar, deve conter o caminho completo do arquivo, ou seja, ele deveria ficar assim:
SeuTImage.Picture.LoadFromFile(''C:\STRSM\Documentos\CPF 123.456.789-10\28-07-2017 10.26.jpg ');

por isso acho que estava ocorrendo o erro de não encontrar o arquivo.

Faça um teste passando o caminho completo do arquivo, caso ainda esteja aparecendo um erro, poste como está o seu código e qual o erro exibido.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gtramonte
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 27 de Setembro de 2010
Mensagens: 117

MensagemEnviada: Seg Jul 31, 2017 11:41 am    Assunto: Responder com Citação

Leo! Deu certissimo. Só restou uma duvida esse item CPF é variável , ele muda de acordo com cada pasta salva de cada cliente. Como ficaria pra entar nessa variação?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Seg Jul 31, 2017 11:54 am    Assunto: Responder com Citação

Você pode começar a salvar o caminho no banco de dados juntamente com o nome, ou você pode construir a string passando o CPF, ex:

Código:
var
  FileName: String;
  ImageName: String;
  FilePath: String;
  CPF: String;
begin
  FilePath := 'C:\STRSM\Documentos';
  CPF := SuaQuery.FieldByName('CPF').AsString;
  ImageName := SuaQuery.FieldByName('CampoStringImagem').AsString;
  FileName := Format('%s\CPF %s\%s', [FilePath, CPF, ImageName]);
  SeuTImage.Picture.LoadFromFile(FileName);
end;


Desse jeito a string contendo o caminho do arquivo é construída em runtime, onde o CPF e o nome da imagem são variáveis de acordo com o registro selecionado na query
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gtramonte
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 27 de Setembro de 2010
Mensagens: 117

MensagemEnviada: Seg Jul 31, 2017 12:40 pm    Assunto: Resolvido Responder com Citação

Muito Obrgado Leo! Deu tudo certo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Seg Jul 31, 2017 2:05 pm    Assunto: Responder com Citação

Opa, por nada, que bom que deu certo
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Seg Jul 31, 2017 2:55 pm    Assunto: Responder com Citação

Cara, eu também pensei numa solução a respeito disto.
Mas como não gosto de compartilhar diretório, pensei em fazer um servidor de imagens por tcp.
Acho mais louvável, pois aí não tenho de apontar nada para lugar algum, apenas ter o servidor rodando na rede e através de uma configuração acessar o arquivo pertinente.
Até fiz um esboço, mas não ficou 100%, tem alguns erros quando ao término no envio do arquivo.


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB