对于流文件这个一直都没用过,不知该怎么去用?我现在要制作一个编辑模板,里面有四五百条记录,包括序号、材料名称、时间、页数等,每一张单据产生都要调用这个模板,然后进行编辑,保存到数据库。我现在想用EasyGrid制作这个模板,然后保存为流文件再把它储存进SQL SERVER里,调用时再从数据库里读入。不知我这方法可行不可行?

解决方案 »

  1.   

    参考一下吧,是把图片一流的形式保存:
     
     
    procedure TImageListEx.SaveToStreamEx(Stream: TStream); 
    var 
    I: Integer; 
    Width, Height: Integer; 
    Bitmap, Mask: TBitmap; 
    BinStream: TMemoryStream; 
     
    procedure SetImage(Image: TBitmap; IsMask: Boolean); 
    begin 
    Image.Assign(nil);//清除上一次保存的图像,避免出现图像重叠 
    with Image do 
    begin 
    if IsMask then Monochrome := True;//掩码位图必须使用单色 
    Height := Self.Height; 
    Width := Self.Width; 
    end; 
    end; 
     
    procedure SaveImageToStream(Image: TBitmap); 
    var 
    Count: DWORD; 
    begin 
    BinStream.Clear; 
    Image.SaveToStream(BinStream); 
    Count := BinStream.Size; 
    Stream.WriteBuffer(Count, SizeOf(Count));//首先保存位图的大小 
    Stream.CopyFrom(BinStream, 0);//接着保存位图 
    end; 
     
    begin 
    Height := Self.Height; 
    Width := Self.Width; 
    Stream.WriteBuffer(Height, SizeOf(Height));//保存原图像列表的高度 
    Stream.WriteBuffer(Width, SizeOf(Width));//保存将原图像列表的宽度 
    Bitmap := TBitmap.Create; 
    Mask := TBitmap.Create; 
    BinStream := TMemoryStream.Create; 
    try 
    for I := 0 to Count - 1 do//遂一保存图像列表中的图像 
    begin 
    SetImage(Bitmap, False); 
    SetImage(Mask, True); 
    GetImages(I, Bitmap, Mask);//取得指定索引号的位图及其掩码位图 
    SaveImageToStream(Bitmap);//保存位图到二进制流中 
    SaveImageToStream(Mask);//保存掩码位图到二进制流中 
    end; 
    finally 
    Bitmap.Free; 
    Mask.Free; 
    BinStream.Free; 
    end; 
    end; 
      

  2.   

    leejiey(keen)
    你说的是什么意思?
    流是内存操作,具体的信息有的呀,留可以写入文件,也可以写入数据库,机器重启怎么会没有的呢?