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

  1.  
  2. {******************************************}
  3. {                                          }
  4. {           FastReport CLX v2.4            }
  5. {              Function list               }
  6. {                                          }
  7. { Copyright (c) 1998-2001 by Tzyganenko A. }
  8. {                                          }
  9. {******************************************}
  10.  
  11. unit FR_Funcs;
  12.  
  13. interface
  14.  
  15. {$I FR.inc}
  16.  
  17. uses
  18.   SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs,
  19.   QStdCtrls, QExtCtrls, QComCtrls, QImgList;
  20.  
  21. type
  22.   TfrFuncForm = class(TForm)
  23.     DescrLabel: TLabel;
  24.     Bevel1: TBevel;
  25.     FuncLB: TListBox;
  26.     FuncLabel: TLabel;
  27.     Button1: TButton;
  28.     Button2: TButton;
  29.     Image1: TImage;
  30.     Tree1: TTreeView;
  31.     ImageList1: TImageList;
  32.     procedure FormCreate(Sender: TObject);
  33.     procedure FuncLBClick(Sender: TObject);
  34.     procedure FuncLBDblClick(Sender: TObject);
  35.     procedure Tree1Change(Sender: TObject; Node: TTreeNode);
  36.     procedure FuncLBDrawItem(Sender: TObject; Index: Integer; ARect: TRect;
  37.       State: TOwnerDrawState; var Handled: Boolean);
  38.     procedure FormDestroy(Sender: TObject);
  39.   private
  40.     { Private declarations }
  41.     procedure Localize;
  42.   public
  43.     { Public declarations }
  44.   end;
  45.  
  46.  
  47. implementation
  48.  
  49. {$R *.xfm}
  50.  
  51. uses FR_Class, FR_Const, FR_Utils, FR_Ctrls;
  52.  
  53.  
  54. { TfrFuncForm }
  55.  
  56. procedure TfrFuncForm.Localize;
  57. begin
  58.   Caption := S53720;
  59.   Button1.Caption := (SOk);
  60.   Button2.Caption := (SCancel);
  61. end;
  62.  
  63. procedure TfrFuncForm.FormCreate(Sender: TObject);
  64. var
  65.   i: Integer;
  66.   sl: TStringList;
  67.   ANode, TreeNode: TTreeNode;
  68. begin
  69.   Localize;
  70.   sl := TStringList.Create;
  71.   frInstalledFunctions.GetCategoryList(sl);
  72.  
  73.   TreeNode := Tree1.Items.Add(nil, (SAllCategories));
  74.   TreeNode.ImageIndex := 0;
  75.   TreeNode.SelectedIndex := 0;
  76.  
  77.   for i := 0 to sl.Count - 1 do
  78.   begin
  79.     ANode := Tree1.Items.AddChild(TreeNode, sl[i]);
  80.     ANode.ImageIndex := 1;
  81.     ANode.SelectedIndex := 1;
  82.   end;
  83.  
  84.   Tree1.FullExpand;
  85.   Tree1.Selected := Tree1.Items[0];
  86.   sl.Free;
  87. end;
  88.  
  89. procedure TfrFuncForm.Tree1Change(Sender: TObject; Node: TTreeNode);
  90. begin
  91.   frInstalledFunctions.GetFunctionList(Node.Text, FuncLB.Items);
  92.   FuncLB.ItemIndex := 0;
  93.   FuncLBClick(nil);
  94. end;
  95.  
  96. procedure TfrFuncForm.FuncLBClick(Sender: TObject);
  97. var
  98.   s: String;
  99. begin
  100.   s := frInstalledFunctions.GetFunctionDesc(FuncLB.Items[FuncLB.ItemIndex]);
  101.   FuncLabel.Caption := Copy(s, 1, Pos('/', s) - 1);
  102.   DescrLabel.Caption := Copy(s, Pos('/', s) + 1, 1000);
  103. end;
  104.  
  105. procedure TfrFuncForm.FuncLBDblClick(Sender: TObject);
  106. begin
  107.   ModalResult := mrOk;
  108. end;
  109.  
  110. procedure TfrFuncForm.FuncLBDrawItem(Sender: TObject; Index: Integer;
  111.   ARect: TRect; State: TOwnerDrawState; var Handled: Boolean);
  112. var
  113.   r: TRect;
  114. begin
  115.   r := ARect;
  116.   r.Right := r.Left + 18;
  117.   r.Bottom := r.Top + 16;
  118.   OffsetRect(r, 2, 0);
  119.   with TListBox(Sender) do
  120.   begin
  121.     Canvas.FillRect(ARect);
  122.     frDrawTransparent(Canvas, r.Left, r.Top, Image1.Picture.Bitmap);
  123.     Canvas.TextOut(ARect.Left + 20, ARect.Top + 1, Items[Index]);
  124.   end;
  125. end;
  126.  
  127.  
  128. procedure TfrFuncForm.FormDestroy(Sender: TObject);
  129. begin
  130.   ImageList1.Clear;
  131. end;
  132.  
  133. end.
  134.