📄 frm_ole.pas
字号:
unit frm_Ole;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtnrs, ExtCtrls, Base_Panel, StdCtrls, Buttons, Base_BitBtn,
DB,adodb,Base_Listview,Base_LabeledEdit,Base_DateTimePicker,Base_ComboBox,cls_BaseClass;
type
TForm_Ole = class(TForm)
Base_Panel2: TBase_Panel;
bbtn_Colse: TBase_BitBtn;
bbtn_Save: TBase_BitBtn;
Ole_Container: TOleContainer;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormActivate(Sender: TObject);
procedure bbtn_SaveClick(Sender: TObject);
procedure bbtn_ColseClick(Sender: TObject);
private
{ Private declarations }
mDataOperate:TDataOperate;
sTableName:string;
strFieldName:string;
msSql:string;
adoQue:TADOQuery;
public
{ Public declarations }
constructor create(dataOperate:TDataOperate;sTName:string;sFieldName:string;sSql:string);reintroduce;overload;
end;
var
Form_Ole: TForm_Ole;
implementation
uses frmSystemDM;
{$R *.dfm}
constructor TForm_Ole.create(dataOperate:TDataOperate;sTName:string;sFieldName:string;sSql:string);
var
iPos:integer;
begin
inherited create(Application);
mDataOperate:=dataOperate;
sTableName:=sTName;
strFieldName:=sFieldName;
iPos:=pos('_',strFieldName);
strFieldName:=copy(strFieldName,iPos + 1,length(strFieldName)-iPos);
msSql:=sSql;
end;
procedure TForm_Ole.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Ole_Container.Close;
end;
procedure TForm_Ole.FormActivate(Sender: TObject);
var
iLoop:integer;
ole_Stream:TStream;
//adoQue:TADOQuery;
begin
try
adoQue:=mDataOperate.adoGetAdoQuery(msSql);
ole_Stream:=adoQue.CreateBlobStream(adoQue.FieldByName(strFieldName),bmread);
if ole_Stream.Size<> 0 then
Ole_Container.LoadFromStream(ole_Stream)
else Ole_Container.CreateObject('word.document',False);
Ole_Container.DoVerb(ovShow);
ole_Stream.Free;
except on E:exception do
begin
ole_Stream.Free;
ShowMessage(e.Message);
end;
end;
end;
procedure TForm_Ole.bbtn_SaveClick(Sender: TObject);
var
tmStream:TStream;
begin
tmStream:=TMemoryStream.Create;
try
Ole_Container.SaveToStream(tmStream);
adoQue.Edit;
TBlobField(adoQue.FieldByName(strFieldName)).LoadFromStream(tmStream);
adoQue.Post;
//Ole_Container.Close;
//Ole_Container.DestroyObject;
//Ole_Container.LoadFromStream(tmStream);
//Ole_Container.DoVerb(ovShow);
tmStream.Free;
except on E:exception do
begin
tmStream.Free;
ShowMessage(e.Message);
end;
end;
self.Close;
end;
procedure TForm_Ole.bbtn_ColseClick(Sender: TObject);
begin
self.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -