📄 uword.pas
字号:
unit Uword;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtnrs, ToolWin, ComCtrls, dxExEdtr, ExtCtrls, dxCntner, dxTL,
dxDBCtrl, dxDBGrid, Menus, ImgList,db,DBTables;
procedure ShowOle(doc:TOleContainer;Fieldname:string);
type
TWord = class(TForm)
Doc_ole: TOleContainer;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
CoolBar1: TCoolBar;
ImageList1: TImageList;
N3: TMenuItem;
ToolBar2: TToolBar;
ToolButton4: TToolButton;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
OpenDialog1: TOpenDialog;
ToolButton7: TToolButton;
SB: TStatusBar;
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Word: TWord;
implementation
uses Udm, u_vardef;
{$R *.dfm}
procedure ShowOle(doc:TOleContainer;Fieldname:string);
var
b:tblobfield;
vsql:string;
vDwbh:string;
begin
//以文件形式保存在本地
if dm.v_sbb.RecordCount=0 then exit;
vDwbh:=dm.v_sbb['dwbh'];
Fname:=gdir()+'\doc\'+vDwbh+Fieldname;
doc.Close;
if FileExists(Fname) then
doc.CreateObjectFromFile(Fname,false)
else
doc.CreateObjectFromFile(gdir()+'\temp.doc',false);
doc.Run;
doc.DoVerb(1);
{ Fname:=gdir()+'\tmp.doc';
vsql:='select dwbh,'+Fieldname +' from t_sbb where dwbh='''+dm.v_sbb['dwbh']+'''';
dm.tmp.SQL.Clear;
dm.tmp.SQL.Text:=vsql;
dm.tmp.Open;
tblobfield(dm.tmp.FieldByName(Fieldname)).SaveToFile(Fname);
if getfilelong(fname)=0 then //如果数据库中无则生成空文件
doc.CreateObjectFromFile(gdir()+'\temp.doc',false)
else
doc.CreateObjectFromFile(Fname,false);
doc.Run;
doc.DoVerb(1);}
end;
procedure TWord.FormShow(Sender: TObject);
var
b:tblobfield;
ms:tmemorystream;
vsql:string;
Fname:string;
begin////////读取doc
{Fname:=gdir()+'\tmp.doc';
ms:=tmemorystream.Create;
ms.Clear;
vsql:='select dwbh,ldxz from t_sbb where dwbh='''+dm.v_sbb['dwbh']+'''';
dm.tmp.SQL.Text:=vsql;
dm.tmp.Open;
tblobfield(dm.tmp.FieldByName('ldxz')).SaveToFile(Fname);
//tblobfield(dm.tmp.FieldByName('doc')).SaveToStream(ms);
Doc_ole.CreateObjectFromFile(Fname,false);
Doc_ole.Run;}
end;
procedure TWord.ToolButton1Click(Sender: TObject);
begin
showmessage('保存');
end;
procedure TWord.N3Click(Sender: TObject);
begin
close;
end;
procedure TWord.ToolButton4Click(Sender: TObject);
var
b:tblobfield;
ms:tmemorystream;
vsql:string;
begin
try
doc_ole.SaveAsDocument(Fname);
showmSG('保存成功');
except
on e:exception do
showmessage(e.Message);
end;
{ //showmessage('保存');
ms:=tmemorystream.Create;
//b:=tblobfield.Create(b);
//Doc_ole.SaveAsDocument('d:\xfh\temp.doc');
//Doc_ole.SaveToStream(ms);
// b.LoadFromStream(ms);
fname:=gdir()+'\temp.doc';
Doc_ole.SaveAsDocument(fname);
//b.LoadFromFile('d:\xfh\temp.doc');
vsql:='select dwbh,ldxz from t_sbb where dwbh='''+dm.v_sbb['dwbh']+'''';
dm.tmp.SQL.Text:=vsql;
dm.tmp.Open;
dm.tmp.Edit;
tblobfield(dm.tmp.FieldByName('ldxz')).LoadFromFile(fname);
// dm.tmp.Parameters.ParamByName('doc').Assign(b);
try
dm.tmp.Post;
showmessage('保存成功');
except
on e:exception do
showmessage(e.Message);
end;
//dm.tmp.ExecSQL; }
end;
procedure TWord.ToolButton2Click(Sender: TObject);
begin
close;
end;
procedure TWord.ToolButton5Click(Sender: TObject);
begin
OpenDialog1.Filter:='WORD文档(*.DOC)|*.DOC';{从对话窗选择文件}
if OpenDialog1.Execute then begin
Doc_ole.CreateObjectFromFile
( OpenDialog1.FileName,False);
Doc_ole.Run;{Doc_ole为ToleContainer构件名}
Doc_ole.DoVerb(1);
end;
end;
procedure TWord.ToolButton7Click(Sender: TObject);
{var
b:tblobfield;
vsql:string;
Fname:string;}
begin {
if dm.v_sbb.RecordCount=0 then exit;
Fname:=gdir()+'\tmp.doc';
vsql:='select dwbh,ldxz from t_sbb where dwbh='''+dm.v_sbb['dwbh']+'''';
dm.tmp.SQL.Text:=vsql;
dm.tmp.Open;
tblobfield(dm.tmp.FieldByName('ldxz')).SaveToFile(Fname);
if getfilelong(fname)=0 then //如果数据库中无则生成空文件
Doc_ole.CreateObjectFromFile(gdir()+'\temp.doc',false)
else
Doc_ole.CreateObjectFromFile(Fname,false);
Doc_ole.Run;
Doc_ole.DoVerb(1);}
word.Caption:='文档编辑->'+vtitle;
ShowOle(Doc_ole,olename);
word.WindowState:=wsNormal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -