Ajuda - Busca - Membros - Calendário
Versão Completa: Paradox + Jpeg + Gif
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
Paulo Nobre
Relutei um pouco em colocar esta pergunta, pois com o google e as pesquisas em foruns você encontra um monte de respostas e dicas.

A pergunta é a seguinte: Como colocar imagem jpeg(gif) numa tabela paradox e quando abrir o programa ter a imagem aparecendo num DBImage?

Para GIF não encontrei nada (na rede e nos foruns) respondendo a pergunta.

Para JPEG as tradicionais são(parece que todo mundo usa o mesmo código copiado):

QUOTE

Ler imagem JPG da tabela Paradox

Procedure Le_Imagem_JPEG(Campo:TBlobField; Foto:TImage);
var BS:TBlobStream;
MinhaImagem:TJPEGImage;
Begin
if Campo.AsString <> '' Then
Begin
BS := TBlobStream.Create((Campo as TBlobField), BMREAD);
MinhaImagem := TJPEGImage.Create;
MinhaImagem.LoadFromStream(BS);
Foto.Picture.Assign(MinhaImagem);
BS.Free;
MinhaImagem.Free;
End
Else Foto.Picture.LoadFromFile('c:\temp\limpa.jpg');
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
Le_Imagem_JPEG(TbClientesCli_Foto, Image1);
// TbClientesCli_Foto é um variavel da tabela do tipo Blob
// Image1 é um componente
end;


------

Gravar imagem JPG em tabela Paradox

Procedure Grava_Imagem_JPEG(Tabela:TTable; Campo:TBlobField;
Foto:TImage; Dialog:TOpenPictureDialog);
var BS:TBlobStream;
MinhaImagem:TJPEGImage;
Begin
Dialog.InitialDir := 'c:\temp';
Dialog.Execute;
if Dialog.FileName <> '' Then
Begin
if not (Tabela.State in [dsEdit, dsInsert]) Then
Tabela.Edit;
BS := TBlobStream.Create((Campo as TBlobField), BMWRITE);
MinhaImagem := TJPEGImage.Create;
MinhaImagem.LoadFromFile(Dialog.FileName);
MinhaImagem.SaveToStream(BS);
Foto.Picture.Assign(MinhaImagem);
BS.Free;
MinhaImagem.Free;
Tabela.Post;
DBISaveChanges(Tabela.Handle);
End;
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
Grava_Imagem_JPEG(TbClientes,TbClientesCli_Foto, Image1,
OpenPictureDialog1);
// TbClientes é o nome de alguma Tabela
// TbClientesCli_Foto é um variavel da tabela do tipo Blob
// Image1 é um componente
// OpenPictureDialog1 é o componente para abrir a figura
end;



ou então

procedure TForm1.DBImage1Click(Sender: TObject);
var jpg : TJPegImage;
begin
if OpenPictureDialog1.Execute then
begin
jpg := TJpegImage.Create;
jpg.LoadFromFile(OpenPictureDialog1.FileName);
clipboard.Assign(jpg);
DBImage1.PasteFromClipboard;
jpg.Free;
end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;

end.
// colocar JPEG e Clipbrd na USES.



É só desta maneira mesmo ou existe uma maneira mais simples.

No meu caso tenho uma tabela com três campos número, nome e informações.
No form existem: 2 dbedits, 1 dbmemo e 1 dbimage.
A figura jepeg e gif já está aparecendo no dbimage1, quero apenas clicar no botão gravar(table1.post)
e transferir a figura para o paradox(não preciso de opendialog-já usei ele para colocar antes a figura lá)
e quando abrir o programa que ela(a figura) apareça no dbgrid.

Tenho que usar este código acima ou tem uma coisa mais simples para se fazer?

Em relação ao gif alguém sabe alguma coisa?
Paulo Nobre
Resolvi o problema.

Adaptei o menor dos códigos e deu certo.
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.