home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 July / Chip_2002-07_cd1.bin / zkuste / delphi / kolekce / d3456 / AWSCRIPT.ZIP / awScript / d4_example / Unit1.pas < prev    next >
Pascal/Delphi Source File  |  2002-04-12  |  3KB  |  109 lines

  1. unit Unit1;
  2.  
  3. {
  4.     A simple example of using the TawScriptControl component. It sets
  5.     up an environment where scripts can use a simple automation object
  6.     to display information in a list box.
  7.     Three buttons have been set up to call three different functions in
  8.     the script. The third one, err_test(), will cause an error in the
  9.     scripting engine, which will demonstrate how the TawScriptErrorDlg
  10.     displays error messages.
  11. }
  12.  
  13. interface
  14.  
  15. uses
  16.     Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  17.     StdCtrls, aw_SCtrl, Unit2;
  18.  
  19. type
  20.   TForm1 = class(TForm)
  21.     awScriptControl1: TawScriptControl;
  22.     awScriptEditor1: TawScriptEditor;
  23.     awScriptErrorDlg1: TawScriptErrorDlg;
  24.     EditButton: TButton;
  25.     RunButton: TButton;
  26.     ListBox1: TListBox;
  27.     ObjTestButton: TButton;
  28.     ErrTestButton: TButton;
  29.         procedure awScriptControl1Error(Sender: TObject; Error: TawScriptError);
  30.         procedure EditButtonClick(Sender: TObject);
  31.     procedure RunButtonClick(Sender: TObject);
  32.     procedure FormCreate(Sender: TObject);
  33.     procedure ObjTestButtonClick(Sender: TObject);
  34.     procedure ErrTestButtonClick(Sender: TObject);
  35.   private
  36.         { Private declarations }
  37.     public
  38.         { Public declarations }
  39.     end;
  40.  
  41. var
  42.     Form1: TForm1;
  43.  
  44. implementation
  45.  
  46. {$R *.DFM}
  47.  
  48. procedure TForm1.FormCreate(Sender: TObject);
  49. begin
  50.     // fill in AutoObjects on the script control
  51.     awScriptControl1.AutoObjects.BeginUpdate;
  52.     with awScriptControl1.AutoObjects.Add do
  53.     begin
  54.         AutoObject := TawScriptTest.Create;
  55.         AutoObjectName := 'sobj';
  56.     end;
  57.     awScriptControl1.AutoObjects.EndUpdate;
  58. end;
  59.  
  60. procedure TForm1.awScriptControl1Error(Sender: TObject; Error: TawScriptError);
  61. begin
  62.     // just display the error
  63.     awScriptErrorDlg1.ShowModalError(Error);
  64. end;
  65.  
  66.  
  67. {
  68.     Button click procedures
  69. }
  70.  
  71. procedure TForm1.EditButtonClick(Sender: TObject);
  72. begin
  73.     awScriptEditor1.Code := awScriptControl1.Code;
  74.     awScriptEditor1.Language := awScriptControl1.Language;
  75.     if awScriptEditor1.ShowModal = mrOK then
  76.     begin
  77.         // changes have been made, so update the script editor
  78.         awScriptControl1.Code.Clear;
  79.         awScriptControl1.Language := awScriptEditor1.Language;
  80.         awScriptControl1.Code := awScriptEditor1.Code;
  81.     end;
  82. end;
  83.  
  84. procedure TForm1.RunButtonClick(Sender: TObject);
  85. var
  86.     l_name, l_res: string;
  87. begin
  88.     if InputQuery('Enter Name', 'Please enter your name:', l_name) then
  89.     begin
  90.         l_res := awScriptControl1.CallFunction('main', [l_name]);
  91.         ListBox1.Items.Add(l_res);
  92.     end;
  93. end;
  94.  
  95. procedure TForm1.ObjTestButtonClick(Sender: TObject);
  96. begin
  97.     awScriptControl1.CallFunction('obj_test', []);
  98. end;
  99.  
  100. procedure TForm1.ErrTestButtonClick(Sender: TObject);
  101. begin
  102.     try
  103.         awScriptControl1.CallFunction('err_test', []);
  104.     except
  105.     end;
  106. end;
  107.  
  108. end.
  109.