home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 August / VPR9608A.BIN / del20try / install / data.z / AUTOCTL.PAS < prev    next >
Pascal/Delphi Source File  |  1996-05-08  |  2KB  |  79 lines

  1. unit AutoCtl;
  2.  
  3. { This program demonstrates Delphi's automation control abilities by
  4.   inserting a query into a document, using Microsoft Word as an automation
  5.   server }
  6.  
  7. interface
  8.  
  9. uses Windows, Classes, Graphics, Forms, Controls, DB, DBGrids,
  10.   DBTables, Grids, StdCtrls, ExtCtrls, ComCtrls, Dialogs;
  11.  
  12. type
  13.   TForm1 = class(TForm)
  14.     Query1: TQuery;
  15.     Panel1: TPanel;
  16.     InsertBtn: TButton;
  17.     Query1Company: TStringField;
  18.     Query1OrderNo: TFloatField;
  19.     Query1SaleDate: TDateTimeField;
  20.     Edit1: TEdit;
  21.     Label1: TLabel;
  22.     procedure InsertBtnClick(Sender: TObject);
  23.   end;
  24.  
  25. var
  26.   Form1: TForm1;
  27.  
  28. implementation
  29.  
  30. uses OleAuto;
  31.  
  32. {$R *.DFM}
  33.  
  34. procedure TForm1.InsertBtnClick(Sender: TObject);
  35. var
  36.   S, Lang: string;
  37.   MSWord: Variant;
  38.   L: Integer;
  39. begin
  40.   try
  41.     MsWord := CreateOleObject('Word.Basic');
  42.   except
  43.     ShowMessage('Could not start Microsoft Word.');
  44.     Exit;
  45.   end;
  46.  
  47.   Lang := MsWord.AppInfo(16);
  48.  
  49.   with Query1 do
  50.   begin
  51.     Form1.Caption := Lang;
  52.     Close;
  53.     Params[0].Text := Edit1.Text;
  54.     Open;
  55.     try
  56.       First;
  57.       L := 0;
  58.       while not EOF do
  59.       begin
  60.         S := S + Query1Company.AsString + ',' +
  61.           Query1OrderNo.AsString + ',' + Query1SaleDate.AsString + #13;
  62.         Inc(L);
  63.         Next;
  64.       end;
  65.       begin
  66.         MsWord.AppShow;
  67.         MSWord.FileNew;
  68.         MSWord.Insert(S);
  69.         MSWord.LineUp(L, 1);
  70.         MSWord.TextToTable(ConvertFrom := 2, NumColumns := 3);
  71.       end;
  72.     finally
  73.       Close;
  74.     end;
  75.   end;
  76. end;
  77.  
  78. end.
  79.