DBImage不支持jpeg格式图片的显示,可按如下方法解决之
uses jpeg;procedure TForm1.h_DBEditChange(Sender: TObject);
var
JpegImage: TJpegImage;
begin
JpegImage := TJpegImage.Create(self);
with query1 do
begin
if query1.fieldbyname('照片').asstring<>'' then
begin
JpegImage.LoadFromFile(FieldByName('照片').AsString);
form1.DBImage_pic.Picture.Graphic.Assign(JpegImage);
end;
if query1.fieldbyname('照片').asstring='' then
begin
if query1.fieldbyname('性别').AsString='男' then
JpegImage.LoadFromFile('c:\LEE01.JPG');
else
JpegImage.LoadFromFile('c:\RING01.JPG');
form1.DBImage_pic.Picture.Graphic.Assign(JpegImage);
end;
end;
JpegImage.Free;
end;procedure TForm1.A1Click(Sender: TObject);
var
Picture1:TPicture;
JpegImage: TJpegImage;
begin
JpegImage := TJpegImage.Create(self);
if form1.OpenPictureDialog1.Execute then
begin
JpegImage.LoadFromFile(OpenPictureDialog1.FileName); //假设你打开的JPEG格式
form1.DBImage_pic.Picture.Graphic.Assign(JpegImage);
end;
with query2 do
begin
close;
sql.clear;
sql.add('update data set 照片=:p_wf where 姓名=:p_ww');
parambyname('p_wf').asstring:=OpenPictureDialog1.FileName;
parambyname('p_ww').asstring:=h_DBEdit.Text;
execsql;
end;
JpegImage.Free;
end;
uses jpeg;procedure TForm1.h_DBEditChange(Sender: TObject);
var
JpegImage: TJpegImage;
begin
JpegImage := TJpegImage.Create(self);
with query1 do
begin
if query1.fieldbyname('照片').asstring<>'' then
begin
JpegImage.LoadFromFile(FieldByName('照片').AsString);
form1.DBImage_pic.Picture.Graphic.Assign(JpegImage);
end;
if query1.fieldbyname('照片').asstring='' then
begin
if query1.fieldbyname('性别').AsString='男' then
JpegImage.LoadFromFile('c:\LEE01.JPG');
else
JpegImage.LoadFromFile('c:\RING01.JPG');
form1.DBImage_pic.Picture.Graphic.Assign(JpegImage);
end;
end;
JpegImage.Free;
end;procedure TForm1.A1Click(Sender: TObject);
var
Picture1:TPicture;
JpegImage: TJpegImage;
begin
JpegImage := TJpegImage.Create(self);
if form1.OpenPictureDialog1.Execute then
begin
JpegImage.LoadFromFile(OpenPictureDialog1.FileName); //假设你打开的JPEG格式
form1.DBImage_pic.Picture.Graphic.Assign(JpegImage);
end;
with query2 do
begin
close;
sql.clear;
sql.add('update data set 照片=:p_wf where 姓名=:p_ww');
parambyname('p_wf').asstring:=OpenPictureDialog1.FileName;
parambyname('p_ww').asstring:=h_DBEdit.Text;
execsql;
end;
JpegImage.Free;
end;
但为什么开始query1的时候,那个默认的相对路径的图片又能显示,而刷新数据后就不行了呢?