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?