home *** CD-ROM | disk | FTP | other *** search
/ PC World Plus! (NZ) 2001 June / HDC50.iso / Runimage / Delphi50 / Demos / Activex / Oleauto / Word8 / WORDAUTO.PAS < prev   
Pascal/Delphi Source File  |  1999-08-11  |  3KB  |  142 lines

  1. unit WordAuto;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     LaunchButton: TButton;
  12.     CloseButton: TButton;
  13.     Memo1: TMemo;
  14.     NewDocButton: TButton;
  15.     TypeTextButton: TButton;
  16.     WordText: TEdit;
  17.     Label1: TLabel;
  18.     procedure LaunchButtonClick(Sender: TObject);
  19.     procedure CloseButtonClick(Sender: TObject);
  20.     procedure NewDocButtonClick(Sender: TObject);
  21.     procedure TypeTextButtonClick(Sender: TObject);
  22.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  23.   private
  24.     { Private Declarations }
  25.     procedure AppQuit(Sender: TObject);
  26.     procedure AppDocumentChange(Sender: TObject);
  27.     procedure DocNew(Sender: TObject);
  28.     procedure DocOpen(Sender: TObject);
  29.     procedure DocClose(Sender: TObject);
  30.   public
  31.     { Public Declarations }
  32.   end;
  33.  
  34. var
  35.   Form1: TForm1;
  36.  
  37. implementation
  38.  
  39. {$R *.DFM}
  40.  
  41. uses
  42.   AutoImpl;
  43.  
  44. var
  45.   WordObject : TWordObject;
  46.  
  47. procedure TForm1.LaunchButtonClick(Sender: TObject);
  48. begin
  49.   if not Assigned(WordObject) then begin
  50.     WordObject := TWordObject.Create;
  51.     with WordObject do begin
  52.       Caption := 'Delphi is RAD!';
  53.       Visible := True;
  54.       OnQuit := AppQuit;
  55.       OnDocumentChange := AppDocumentChange;
  56.       OnNewDocument := DocNew;
  57.       OnOpenDocument := DocOpen;
  58.       OnCloseDocument := DocClose;
  59.     end;
  60.     LaunchButton.Enabled := False;
  61.     CloseButton.Enabled := True;
  62.     NewDocButton.Enabled := True;
  63.   end;
  64. end;
  65.  
  66. procedure TForm1.CloseButtonClick(Sender: TObject);
  67. begin
  68.   if Assigned(WordObject) then begin
  69.     LaunchButton.Enabled := True;
  70.     CloseButton.Enabled := False;
  71.     NewDocButton.Enabled := False;
  72.     TypeTextButton.Enabled := False;
  73.     WordObject.Free;
  74.     WordObject := nil;
  75.   end;
  76. end;
  77.  
  78. procedure TForm1.AppDocumentChange(Sender: TObject);
  79. begin
  80.   Memo1.Lines.Add('Document changed');
  81.   TypeTextButton.Enabled := WordObject.Application.Documents.Count > 0;
  82. end;
  83.  
  84. procedure TForm1.AppQuit(Sender: TObject);
  85. begin
  86.   Memo1.Lines.Add('Quitting Word');
  87.   WordObject.Free;
  88.   WordObject := nil;
  89.   LaunchButton.Enabled := True;
  90.   CloseButton.Enabled := False;
  91.   NewDocButton.Enabled := False;
  92.   TypeTextButton.Enabled := False;
  93. end;
  94.  
  95. procedure TForm1.DocNew(Sender: TObject);
  96. begin
  97.   Memo1.Lines.Add('New document');
  98. end;
  99.  
  100. procedure TForm1.DocOpen(Sender: TObject);
  101. begin
  102.   Memo1.Lines.Add('Document opened');
  103. end;
  104.  
  105. procedure TForm1.DocClose(Sender: TObject);
  106. begin
  107.   Memo1.Lines.Add('Document closed');
  108. end;
  109.  
  110. procedure TForm1.NewDocButtonClick(Sender: TObject);
  111. begin
  112.   try
  113.     WordObject.NewDoc('');
  114.   except
  115.     ShowMessage('It seems like somebody killed Word and didn''t tell me about it...');
  116.     if Assigned(WordObject) then begin
  117.       LaunchButton.Enabled := True;
  118.       CloseButton.Enabled := False;
  119.       NewDocButton.Enabled := False;
  120.       TypeTextButton.Enabled := False;
  121.       WordObject.Free;
  122.       WordObject := nil;
  123.     end;
  124.   end;
  125. end;
  126.  
  127. procedure TForm1.TypeTextButtonClick(Sender: TObject);
  128. begin
  129.   WordObject.InsertText(WordText.Text);
  130. end;
  131.  
  132. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  133. begin
  134.   if Assigned(WordObject) then begin
  135.     WordObject.Free;
  136.     WordObject := nil;
  137.   end;
  138. end;
  139.  
  140. end.
  141.  
  142.