在SQL里有个pic字段,类型是image,我想要实现的功能是,在delphi里使用一个控件,运行时,当点击这个控件就会跳出图片上传的窗口,然后浏览到要上传的图片,确定后,图片会自动上传到程序文件夹里的image文件夹里,这个路径是动态的,也就是说不管程序弄到哪里,图片都会上传到这个文件夹里。请问应该使用什么控件,如何实现????
解决方案 »
- Delphi Panel遍历解释
- 請教:在ie中可以顯示的網頁,在webbrowser中確無法顯示,怎麼回事?在線等!給100分
- 谁能给一个数组插入oracle的delphi 例子。
- 运行第一次没错,第二次出错,回答就给分。
- 请各位大虾告诉我这个功能如何实现,分酬
- 如何读取硬盘ID CPU系列号,我试过很的例子,但总是只能在windows 2k可以,但换了98和me时就不能用了
- delphi能编写出类似商站购物一样动态网页程序吗?
- 在 Delphi 中,左右声道怎么切换?
- **************如何读XML文件
- Delphi程序运行的入口点在哪儿?
- 请问怎么样改变BusinessSkinForm的窗口大小?(好象它的窗口宽度,不能变的很小)
- delphi6:delphi32.exe 无法找到入口 有什么原因
????到底是上传到数据库里的pic字段,还是某个叫image的文件夹里????
var
MS: TFileStream;
begin
if OpenDialog1.Execute then
begin
MS:=TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
Table1.Append; // 在数据库中添加一条记录
TBlobField(Table1.FieldbyName('image')).LoadFromStream(MS);
Table1.Post; // 将所作的更新写入数据库
end;
保存到文件就只是文件COPY了
2.实现如下:
1):窗体中用一个DBImage控件来显示图片,当然它的DataField属性设为pic,同时也设好它的DataSource属性.
2):添加一个OpenPictureDialog控件,用来选要裁入的图片之用的,其Filter属性设为:JPEG Image File (*.jpg)|*.jpg,而DefaultExt属性设为jpg.
3):在程序的单元中加入 uses Jpeg (即引用Jpeg).
3.主要代码:{裁入图片}
var
imagejpg:TJPEGImage; //jpg图片
MyStm:TMemoryStream;
Pic2:tbitmap;
begin
{裁入图片}
if ADOQuery1.State in [dsEdit, dsInsert] then begin
MyStm:=TMemoryStream.Create;
Pic2:=tbitmap.Create;
imagejpg:=Tjpegimage.Create;
if OpenPictureDialog1.Execute then
begin
imagejpg.LoadFromFile(OpenPictureDialog1.FileName);
Pic2.Assign(imagejpg);
pic2.SaveToStream(MyStm);
MyStm.Position:=0;
TBlobField(adoquery1.FieldByName('pic')).LoadFromStream(MyStm);
end;
MyStm.Free;
imagejpg.free;
end;
end;
[code=Delphi(Pascal)]
{保存的按钮}
//加一个SaveDialog按件作为你动态保存文夹的位置,其Filter属性设为:JPEG Image File (*.jpg)|*.jpg,而DefaultExt属性设为jpg.
if not adoquery1.FieldByName('XP').IsNull then
if SaveDialog1.Execute then
DBImage1.Picture.SaveToFile(SaveDialog1.FileName);
adoquery1.post;
[/code]
//加一个SaveDialog按件作为你动态保存文夹的位置,其Filter属性设为:JPEG Image File (*.jpg)|*.jpg,而DefaultExt属性设为jpg.
if not adoquery1.FieldByName('pic').IsNull then
if SaveDialog1.Execute then
DBImage1.Picture.SaveToFile(SaveDialog1.FileName);
adoquery1.post;
5楼的老大,你的代码不需要控件的吗?不能用啊,而且,delphi里没有TFileStream;这个类型啊?
if ADOQuery1.State in [dsEdit, dsInsert] then begin