Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
gtramonte Aprendiz

Registrado: Segunda-Feira, 27 de Setembro de 2010 Mensagens: 117
|
Enviada: Dom Jul 30, 2017 7:11 pm Assunto: Mostrando documento salvo num timage |
|
|
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 |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Seg Jul 31, 2017 8:43 am Assunto: |
|
|
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 |
|
 |
gtramonte Aprendiz

Registrado: Segunda-Feira, 27 de Setembro de 2010 Mensagens: 117
|
Enviada: Seg Jul 31, 2017 9:44 am Assunto: |
|
|
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 |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Seg Jul 31, 2017 9:55 am Assunto: |
|
|
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 |
|
 |
gtramonte Aprendiz

Registrado: Segunda-Feira, 27 de Setembro de 2010 Mensagens: 117
|
Enviada: Seg Jul 31, 2017 11:23 am Assunto: |
|
|
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 |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Seg Jul 31, 2017 11:34 am Assunto: |
|
|
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 |
|
 |
gtramonte Aprendiz

Registrado: Segunda-Feira, 27 de Setembro de 2010 Mensagens: 117
|
Enviada: Seg Jul 31, 2017 11:41 am Assunto: |
|
|
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 |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Seg Jul 31, 2017 11:54 am Assunto: |
|
|
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 |
|
 |
gtramonte Aprendiz

Registrado: Segunda-Feira, 27 de Setembro de 2010 Mensagens: 117
|
Enviada: Seg Jul 31, 2017 12:40 pm Assunto: Resolvido |
|
|
Muito Obrgado Leo! Deu tudo certo. |
|
Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Seg Jul 31, 2017 2:05 pm Assunto: |
|
|
Opa, por nada, que bom que deu certo |
|
Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Seg Jul 31, 2017 2:55 pm Assunto: |
|
|
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 |
|
 |
|