home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 October / Chip_2001-10_cd1.bin / zkuste / delphi / kolekce / d6 / FRCLX.ZIP / SOURCE / FR_Arg.pas < prev    next >
Pascal/Delphi Source File  |  2001-07-03  |  3KB  |  112 lines

  1.  
  2. {******************************************}
  3. {                                          }
  4. {           FastReport CLX v2.4            }
  5. {            Function arguments            }
  6. {                                          }
  7. { Copyright (c) 1998-2001 by Tzyganenko A. }
  8. {                                          }
  9. {******************************************}
  10.  
  11. unit FR_Arg;
  12.  
  13. interface
  14.  
  15. {$I FR.inc}
  16.  
  17. uses
  18.   SysUtils, Classes, QGraphics, QControls, QForms, QDialogs,
  19.   FR_Ctrls, QExtCtrls, QStdCtrls, QButtons;
  20.  
  21. type
  22.   TfrFuncArgForm = class(TForm)
  23.     Button1: TButton;
  24.     Button2: TButton;
  25.     Label1: TLabel;
  26.     Label2: TLabel;
  27.     Label3: TLabel;
  28.     ArgEdit1: TfrComboEdit;
  29.     Bevel2: TBevel;
  30.     ArgEdit2: TfrComboEdit;
  31.     ArgEdit3: TfrComboEdit;
  32.     Bevel1: TBevel;
  33.     DescrLabel: TLabel;
  34.     FuncLabel: TLabel;
  35.     procedure ExprBtn1Click(Sender: TObject);
  36.     procedure FormShow(Sender: TObject);
  37.     procedure FormHide(Sender: TObject);
  38.   private
  39.     { Private declarations }
  40.     procedure Localize;
  41.   public
  42.     { Public declarations }
  43.     Func: String;
  44.   end;
  45.  
  46.  
  47. implementation
  48.  
  49. uses FR_Expr, FR_Utils, FR_Const;
  50.  
  51. {$R *.xfm}
  52.  
  53. procedure TfrFuncArgForm.ExprBtn1Click(Sender: TObject);
  54. begin
  55.   with TfrExprForm.Create(nil) do
  56.   begin
  57.     if ShowModal = mrOk then
  58.       TEdit(Sender).Text := ExprMemo.Text;
  59.     Free;
  60.   end;
  61. end;
  62.  
  63. procedure TfrFuncArgForm.Localize;
  64. begin
  65.   Caption := S53730;
  66.   Label1.Caption := S53731 + ' &1';
  67.   Label2.Caption := S53731 + ' &2';
  68.   Label3.Caption := S53731 + ' &3';
  69.   ArgEdit1.ButtonHint := S53575;
  70.   Button1.Caption := (SOk);
  71.   Button2.Caption := (SCancel);
  72. end;
  73.  
  74. procedure TfrFuncArgForm.FormShow(Sender: TObject);
  75. var
  76.   i: Integer;
  77.   sSyntax: String;
  78.  
  79.   procedure EnableControls(ATag: Integer; AEnabled: Boolean);
  80.   begin
  81.     case ATag of
  82.       2: frEnableControls([Label2, ArgEdit2], AEnabled);
  83.       3: frEnableControls([Label3, ArgEdit3], AEnabled);
  84.     end;
  85.   end;
  86.  
  87. begin
  88.   Localize;
  89.   EnableControls(2, False);
  90.   EnableControls(3, False);
  91.   sSyntax := FuncLabel.Caption;
  92.   i := 2;
  93.   while Pos(',', sSyntax) <> 0 do
  94.   begin
  95.     sSyntax[Pos(',', sSyntax)] := ' ';
  96.     EnableControls(i, True);
  97.     Inc(i);
  98.   end;
  99. end;
  100.  
  101. procedure TfrFuncArgForm.FormHide(Sender: TObject);
  102. begin
  103.   Func := Func + '(' + ArgEdit1.Text;
  104.   if ArgEdit2.Text <> '' then
  105.     Func := Func + ', ' + ArgEdit2.Text;
  106.   if ArgEdit3.Text <> '' then
  107.     Func := Func + ', ' + ArgEdit3.Text;
  108.   Func := Func + ')';
  109. end;
  110.  
  111. end.
  112.