⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frm_ole.pas

📁 用Delhpi和mapx开发的警务管理系统
💻 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 + -