Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2009年05月12日] [更新 2013年11月28日] ワード操作フォームEx
ワード操作フォームEx
テストプログラム SimpleWord
動作確認等 Windows 7 U64(SP1) + Delphi XE(UP1) Pro + Word 2010







メインフォームとして起動


ワード操作フォームExをメインフォームとして起動します.非常にシンプルなワードです.ワード操作フォームExをメインフォームとして利用する際の参考です.
もちろん,右クリックメニューでフォントの設定,書式や段落の設定ができますから,簡単な文書は十分に作成可能です.


図1
極単機能ワード

リスト1
テストプログラムのコード
unit SimpleWordUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, plWordEx, Buttons, ComCtrls, ExtCtrls, ToolWin;

type
  TplWordFormEx1 = class(TplWordFormEx)
    procedure FormShow(Sender: TObject);
    procedure btnFileSaveClick(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  plWordFormEx1: TplWordFormEx1;

implementation

{$R *.dfm}

//=============================================================================
//  OnShowイベント
//
//  右側のパネルは非表示
//  起動フォルダの'白紙文書.doc'を表示 
//=============================================================================
procedure TplWordFormEx1.FormShow(Sender: TObject);
begin
  //右側のパネル非表示
  PanelRight.Visible := False;
  //フォームを表示する前に文書名を指定すると,その文書を表示する
  wdfFileFullPath := ExtractFilePath(Application.ExeName) + '白紙文書.doc';

  //継承元のOnShowを実行
  inherited;

  //上書きボタンは一度保存したら使用可能にするので使用不可にしておく
  //表示文書をテンプレートのように使用する場合等
  btnOverWrite.Enabled := False;
end;

//=============================================================================
//  [保存]ボタンクリックイベント
//
//  新規保存時に文書名自動生成
//  継承元の保存ボタンの機能(inherited)は実行しない
//  保存メソッドwdfWordFileSaveは
//  成功するとwdfFileFullPathに保存したフルパスを返す(元の名前が変更される)
//  失敗した場合は変化なし
//=============================================================================
procedure TplWordFormEx1.btnFileSaveClick(Sender: TObject);
var
  S : String;
begin
  //保存文書名の自動生成
  S := FormatDateTime('yyyy"年"mm"月"dd"日_"',Now);

  SaveDialog1.Filter     := 'ワード文書 (*.doc)|*.doc';
  SaveDialog1.DefaultExt := '.doc';
  SaveDialog1.FileName   := S + '新規ワード文書';

  if SaveDialog1.Execute then begin
    if wdfWordFileSave(SaveDialog1.FileName) then begin
      btnOverWrite.Enabled := True;
    end;
  end;
end;

end.




ひな型のプロジェクトやフォームとして使用


上のコードでは,右側のパネル (TPanel) を非表示にしていますが,この部分を削除すると下図のように表示されます.
このパネルにボタン等を配置して,いろいろなテスト用のプロジェクトとして利用できます.


  //右側のパネル非表示
  PanelRight.Visible := False;  //ここを削除するかTrueにする


図2
テスト用のボタンを配置

コンポーネントやプログラムのファイルは,パスの通ったフォルダにないと利用できません.
筆者の場合,共通に使用するコード類は D:\XRAYpl というフォルダに格納しています.したがって,テストプログラムのプロジェクトのソースコードは,次のようになっています.各自の環境に応じてパス名を変更してください.

このようなプロジェクトを作成しておけば,ワード操作フォームEx をリポジトリに登録しなくても,いつでもワード操作フォームEx が使用可能となります.
このひな型のプロジェクトのフォーム関係のファイル (pas, dmf) を,別のプロジェクトのフォルダにコピーし,そのプロジェクトに追加して使用できます.


uses
  Forms,
  Windows,
  Dialogs,
  SimpleWordUnit in 'SimpleWordUnit.pas' {plWordFormEx1},
  plWordEx in 'D:\XRAYpl\plWordEx.pas' {plWordFormEx};  //ここを変更


plWordEx.pas.pas と plWordEx.dfm ファイルはライブラリのパスが通った場所 (フォルダ内) にありますから,実際には必要ありません.2 行目のコードは削除しても構いません.2 行目のコードは,継承クラスを作成した時に自動的にプロジェクトに追加されたコードです.
このことは,他のテストプログラムでも同じです.

このコードは,IDE のメニューの [プロジェクト] [プロジェクトから削除] から plWordEx を削除すれば自動的に削除されます.



uses
  Forms,
  Windows,
  Dialogs,
  SimpleWordUnit in 'SimpleWordUnit.pas' {plWordFormEx1};