AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > Delphi

Delphi实现在数据库中存取图像

51自学网 http://www.51zixue.net

  程序代码如下:

unit Unit1;
interface
uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables,mmsystem, ExtCtrls;

type
 TForm1 = class(TForm)
 ListBox1: TListBox;
 Table1: TTable;
 Image1: TImage;
 procedure FormCreate(Sender: TObject);
 procedure ListBox1Click(Sender: TObject);
private
 { Private declarations }
public
 { Public declarations }
end;

var
 Form1: TForm1;
 implementation
 {$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
 mem:TMemoryStream;
begin
 if Table1.Eof and Table1.Bof then
 begin
  with Table1 do
  begin
   Insert;
   FieldByName(’Name’).AsString:=’鸟’;
   mem:=TMemoryStream.Create();
   mem.LoadFromFile(’鸟.bmp’);
   TBlobField(FieldByName(’Data’)).LoadFromStream(mem);
   Post;
    Insert;
   FieldByName(’Name’).AsString:=’样品’;
   mem:=TMemoryStream.Create();
   mem.LoadFromFile(’样品.bmp’);
   TBlobField(FieldByName(’Data’)).LoadFromStream(mem);
   Post;
   Insert;
   FieldByName(’Name’).AsString:=’叶子’;
   mem:=TMemoryStream.Create();
   mem.LoadFromFile(’叶子.bmp’);
   TBlobField(FieldByName(’Data’)).LoadFromStream(mem);
   Post;
   Insert;
   FieldByName(’Name’).AsString:=’荷花’;
   mem:=TMemoryStream.Create();
   mem.LoadFromFile(’荷花.bmp’);
   TBlobField(FieldByName(’Data’)).LoadFromStream(mem);
   Post;
   mem.Free;
  end;
 end;
 with Table1 do
 begin
  First;
  while not Eof do
  begin
   ListBox1.Items.Add(FieldByName(’Name’).AsString);
   Next;
  end;
 end;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
var
 mem:TStream;
 bmp:TBitmap;
begin
 with Table1 do
 begin
  First;
  while not Eof do
  begin
   if FieldByName(’Name’).AsString=ListBox1.Items[ListBox1.ItemIndex] then
    break;
  Next;
  end;
  bmp:=TBitmap.Create;
  mem:=CreateBlobStream(FieldByName(’Data’),bmRead);
  mem.Position:=0;
  bmp.LoadFromStream(mem);
  self.Image1.Picture.Assign(bmp);
  bmp.Free;
  mem.Free;
 end;
end;

end.

  保存文件,然后按F9键运行程序,程序运行的初始画面如图3所示。

  在TListBox组件中选中一项后,就会显示相对应的图像文件,如图4所示。

  
图3 程序运行的初始画面


图4 程序运行结果

 
 

上一篇:Delphi多层应用程序的实现  下一篇:第十九章 Delphi自定义部件开发(二)