我正在写一个档案系统,需要用到扫描的图片,我用摸板扫描,现在对扫描仪的控制,以及如何将单张图片存入数据库,我都解决了,但是我要求多页扫描,所以用摸板扫描,但取不到图片的地址。代码如下:
扫描:
procedure TForm1.Button1Click(Sender: TObject);
begin
ImgScan1.ScanTo:=3;
ImgScan1.DestImageControl :='ImgEdit1';
ImgScan1.Image:='D:\Img\pic';
ImgScan1.OpenScanner;
ImgScan1.StartScan;
ImgScan1.CloseScanner;
end;入库:
SqlStr := 'Insert Into DictPicture (PicCode,PicName,PicImage,FileConnect) Values(:Code,:Name,:Image,:Connect)';
    with ADOInsertQuery do
    begin
        Close;
        Sql.Clear;
        Sql.Add(SqlStr);
        Parameters.ParamByName('Code').Value := Code;
        Parameters.ParamByName('Name').Value := ImgPath;
        ParameTers.ParamByName('Image').LoadFromFile(ImgEdit1.Image, ftBlob);
        Parameters.ParamByName('Connect').Value := ConnectFlag;
        ExecSql;
    end;但是ImgEdit1.Image取出来的值为'D:\Img\pic*',而不是D:\Img\pic00001.bmp的具体的值。请教如何解决,定有重谢

解决方案 »

  1.   

    我写了一个代码完全可以用的。
    1。你把一个DBImage绑定到图片字段上。然后用。
    procedure TForm1.Button1Click(Sender: TObject);
    var
        B: TBitmap;
    begin
      if ADODataSet1.Eof then
      begin
        showmessage('请选择一个员工!');
        exit;
      end;
      if OpenPictureDialog1.Execute then
      begin
        ADODataSet1.Edit ;
        B := TBitmap.Create;
        try
          B.LoadFromFile(OpenPictureDialog1.FileName); 
          DBImage1.Picture.Assign(B);
        finally
          B.Free;
        end;
        ADODataSet1.post;
      end;end;
    2。第二种方法是读取剪贴板中的图片信息存入数据库
    procedure TForm1.Button2Click(Sender: TObject);
    var
        C: TClipboard;
        i,j:integer;
        strTemp:string;
        blnFind:boolean;
    begin
        C := TClipboard.Create;
        try
        if not OpenDialog1.Execute then exit;
           ADODataSet1.Edit
           image1.Picture.LoadFromFile(OpenDialog1.FileName);
           c.Assign(Image1.Picture.Graphic );
           DBImage1.PasteFromClipboard;
           ADODataSet1.Post ;
        finally
          C.Free;
        end;
    end;