如何将控件里的文字当作一个图保存到数据库里?(100分)

  • 主题发起人 主题发起人 flyingfly
  • 开始时间 开始时间
F

flyingfly

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将控件中的内容作为一个图像保存到数据库中,<br>比如richedit里的内容,当作一个图保存到数据库里,而不是字符形式
 
数据类型定义为NVARCHAR就行吧。
 
为什么要这样做啊?我觉得你可以把RICHEDIT里面的内容画到画布上然后存入数据库!
 
我不知道怎么样把RICHEDIT里面的内容变成BMP图像文件!??
 
图像存入数据库不是很恐怖吗
 
是有些不好,那是没办法啊!!<br>现在正想用OLE作,是能保存到库里,可是编辑起来太费劲了!!
 
是有些不好,那是没办法啊!!<br>现在正想用OLE作,是能保存到库里,可是编辑起来太费劲了!!
 
试试如下代码,随手写的,未经测试<br><br>var &nbsp;dskcanvas:TCanvas;<br>&nbsp; &nbsp; &nbsp;bmp: Tbitmap;<br>begin<br>&nbsp; dskcanvas:=TCanvas.create;<br>&nbsp; dskcanvas.handle:=getdc(richedit1.handle); //取得richedit的画布<br>&nbsp; &nbsp; bmp:= Tbitmap.create;<br>&nbsp; &nbsp; &nbsp;bmp.Assign(dskcanvas);<br>&nbsp; &nbsp; &nbsp;bmp.savetofile('d:/bmp.bmp');<br>&nbsp; &nbsp; bmp.free;<br>&nbsp; ReleaseDC(0,dskcanvas.handle);<br>&nbsp; dskcanvas.Free;<br>end;
 
首先通过Tcanvas画布的Textout方法将文本输出到画布上,然后使用Timage对象中Picture<br>属性的SavetoFile方法保存为图像。<br>//加上ExtCtrls 单元<br>var<br>&nbsp; C_image: TImage;<br>&nbsp; i: integer;<br>begin<br>&nbsp; C_image:=Timage.Create(nil);<br>&nbsp; C_image.width:=richedit.width;<br>&nbsp; C_image.Height:=richedit.Height;<br>&nbsp; for i:=0 to richedit.lines.Count-1 do<br>&nbsp; begin <br>&nbsp; &nbsp; C_image.Canvas.Testout( 0,i*12, richedit.Lines.Strings);<br>&nbsp; end;<br>&nbsp; C_image.Picture.SavetoFile([文件名]);<br>&nbsp; C_image.free;<br>end;
 
以下为写操作:<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp;bs:tblobstream;<br>begin<br>table1.insert; // or edit<br>bs:=tblobstream.create(table1.fieldbyname('b1') as tblobfield,bmwrite);<br>try<br>memo1.Lines.savetostream(bs);<br>finally<br>bs.free;<br>table1.Post;<br>end;<br>end;<br><br>以下为读操作:<br>procedure TForm1.Button2Click(Sender: TObject);<br>var<br>&nbsp;bs:tblobstream;<br>begin<br>bs:=tblobstream.create(table1.fieldbyname('b1') as tblobfield,bmread);<br>try<br>memo1.Lines.loadfromstream(bs);<br>finally<br>bs.free;<br>end;<br>end;
 
后退
顶部