olecontainer控件显示word文档解决方案
olecontainer控件显示word文档
为什么要左键双击olecontainer之后才能显示word文档呢?
procedure TForm1.Button1Click(Sender: TObject);
var
sfilename:string;
bs:Tadoblobstream;
begin
bs:=Tadoblobstream.Create(TBLOBfield(adotable1.FieldByName('PactText')),bmread);
try
sfilename:=extractfilepath(application.ExeName)+trim(adotable1.fieldbyname('DocName').AsString);
sfilename:=sfilename+'.'+'doc';
bs.SaveToFile(sfilename);
try
//olecontainer1控件放在一个名字叫djhyopenform的窗体里
djhyopenform:=Tdjhyopenform.Create(self);
djhyopenform.olecontainer1.CreateObjectFromFile(sfilename,false);
djhyopenform.OleContainer1.Iconic:=true;
djhyopenform.ShowModal;
finally
djhyopenform.Free;
end;
finally
bs.free;
end;
end;
------解决方案--------------------
OleContainer是有这个问题的,而且微软不再修正,可以采用微软新的DsoFramer,网博士就是这么做的。
为什么要左键双击olecontainer之后才能显示word文档呢?
procedure TForm1.Button1Click(Sender: TObject);
var
sfilename:string;
bs:Tadoblobstream;
begin
bs:=Tadoblobstream.Create(TBLOBfield(adotable1.FieldByName('PactText')),bmread);
try
sfilename:=extractfilepath(application.ExeName)+trim(adotable1.fieldbyname('DocName').AsString);
sfilename:=sfilename+'.'+'doc';
bs.SaveToFile(sfilename);
try
//olecontainer1控件放在一个名字叫djhyopenform的窗体里
djhyopenform:=Tdjhyopenform.Create(self);
djhyopenform.olecontainer1.CreateObjectFromFile(sfilename,false);
djhyopenform.OleContainer1.Iconic:=true;
djhyopenform.ShowModal;
finally
djhyopenform.Free;
end;
finally
bs.free;
end;
end;
------解决方案--------------------
OleContainer是有这个问题的,而且微软不再修正,可以采用微软新的DsoFramer,网博士就是这么做的。