var
range:Olevariant;
begin
Range:=OleContainer1.OleObject.Application.Selection.Range;
Range先保存进数据库 image字段
.....
end;
图片可在word指定的位置中插入从数据库读出Range
var
filename:String;
LinkToFile,SaveWithDocument:boolean;
Range:olevariant;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from aa');
adoquery1.Open;
adoquery1.last;
Range:=adoquery1.fieldByName('test').AsVariant;
filename:='C:\word.png';
LinkToFile:=false;
SaveWithDocument:=true;
OleContainer1.OleObject.Application.Selection.InlineShapes.AddPicture(filename, LinkToFile, SaveWithDocument,range);
end;
提示:数据类型不匹配?请问要怎样实现?
range:Olevariant;
begin
Range:=OleContainer1.OleObject.Application.Selection.Range;
Range先保存进数据库 image字段
.....
end;
图片可在word指定的位置中插入从数据库读出Range
var
filename:String;
LinkToFile,SaveWithDocument:boolean;
Range:olevariant;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from aa');
adoquery1.Open;
adoquery1.last;
Range:=adoquery1.fieldByName('test').AsVariant;
filename:='C:\word.png';
LinkToFile:=false;
SaveWithDocument:=true;
OleContainer1.OleObject.Application.Selection.InlineShapes.AddPicture(filename, LinkToFile, SaveWithDocument,range);
end;
提示:数据类型不匹配?请问要怎样实现?
adoquery1.FieldByName('test').AsVariant:=Range; //test 是使用image类型
//Range是OleVariant类型 通过GetVariantType 得到的是dispatch 从数据库读出
Range:=adoquery1.FieldByName('test').AsVariant;
Range也是属于OleVariant 类型 但是通过GetVariantType获取到的是OleStr 所以
OleContainer1.OleObject.Application.Selection.InlineShapes.AddPicture(filename, LinkToFile, SaveWithDocument,Range);就出现不匹配了请问要怎么转换?
//保存图像
procedure TFrmNewGoods.AddPicture(sgoodscode:String);
var
picstream:tadoblobstream;
bmppic:tbitmap;
jpgpic:tjpegimage;
bmpstream:TMemoryStream;
OpenPicDialog:TOpenPictureDialog;
itype:boolean;
begin
try
OpenPicDialog:=TOpenPictureDialog.Create(nil);
adoquery1.Connection:=DMdataMode.DBConnection;
OpenPicDialog.Filter:='All *.jpg; ¦*.jpg;)';
itype:=false;
adoquery1.SQL.Text:='select goodscode,picture from gds_goodscode with(nolock) where goodscode='+sgoodscode;
adoquery1.open;
adoquery1.Edit;
if OpenPicDialog.Execute then
begin
jpgpic:=tjpegimage.Create;
bmppic:=tbitmap.Create;
bmpstream:=tmemorystream.Create;
jpgpic.LoadFromFile(OpenPicDialog.filename);
bmppic.Assign(jpgpic);
bmppic.SaveToStream(bmpstream);
picstream:=tadoblobstream.Create(tblobfield(adoquery1.Fields[1]),bmWrite);
picstream.LoadFromStream(bmpstream);
picstream.Position:=0;
tblobfield(adoquery1.Fields[1]).loadfromstream(picstream);
itype:=true;
end;
adoquery1.Post;
if itype then
begin
Adoquery1.Edit;
picstream.Free;
jpgpic.Free;
bmppic.Free;
bmpstream.Free;
end;
finally
OpenPicDialog.free;
end;
end;
显示图像
用一个DBImage 关联显示就行
保存图片我已经完成。我现在是想在WORD中 指定位置显示图片,
我保存了位置 类型是OLEVariant 但是从数据库读取Range值OleContainer1.OleObject.Application.Selection.InlineShapes.AddPicture(filename, LinkToFile, SaveWithDocument,Range); 就出现不匹配了