Работа с Word через OLE

Материал из DRKB


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics,
  Controls, Forms, Dialogs, Buttons,ComCtrls, ExtCtrls, OleCtnrs;

type
  TForm1 = class(TForm)
    OleContainer1: TOleContainer;
    Panel1: TPanel;
    StatusBar1: TStatusBar;
    mbLoad: TSpeedButton;
    mbPrint: TSpeedButton;
    OpenDialog1: TOpenDialog;
    procedure mbLoadClick(Sender: TObject);
    procedure mbPrintClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.mbLoadClick(Sender: TObject);
begin
  // Покажем диалог, и если он отработал, то загрузим в контейнер
  if OpenDialog1.Execute and (OpenDialog1.FileName <> '') then
    OleContainer1.CreateObjectFromFile(OpenDialog1.FileName, False);
  // Если загрузилось что-нибудь, то покажем
  if OleContainer1.State <> osEmpty then
    OleContainer1.DoVerb(ovShow);
end;

procedure TForm1.mbPrintClick(Sender: TObject);
var
  V: Variant;
begin
  if OleContainer1.State = osEmpty then
  begin
    MessageDlg('OLE не загружен !!', mtError, [mbOk], 0);
    exit;
  end;
  // Получаем объект, который воплощает в себе WordBasic интерфейс
  V := OleContainer1.OleObject.Application.WordBasic;
  // Командуем до одурения ....
  V.FilePrint;
end;

end.


Source: http://blackman.wp-club.net/
ID: 04409