home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / delphi / experti / d456 / BROMBSCT.ZIP / uLoadTemplate.pas < prev    next >
Pascal/Delphi Source File  |  2002-06-28  |  3KB  |  141 lines

  1. unit uLoadTemplate;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, ComCtrls;
  8.  
  9. type
  10.   TfmLoadTemplate = class(TForm)
  11.     PageControl1: TPageControl;
  12.     tsTemplate: TTabSheet;
  13.     lbTemplates: TListBox;
  14.     tsParams: TTabSheet;
  15.     ListView: TListView;
  16.     procedure lbTemplatesKeyDown(Sender: TObject; var Key: Word;
  17.       Shift: TShiftState);
  18.     procedure FormCreate(Sender: TObject);
  19.     procedure ListViewKeyDown(Sender: TObject; var Key: Word;
  20.       Shift: TShiftState);
  21.   private
  22.     { Private declarations }
  23.     ed: boolean;
  24.     sec: string;
  25.     L: TstringList;
  26.     LVal: TstringList;
  27.     function ReadLines: string;
  28.     function ReadCode: string;
  29.   public
  30.     { Public declarations }
  31.     Code: TStringList;
  32.   end;
  33.  
  34. var
  35.   fmLoadTemplate: TfmLoadTemplate;
  36.  
  37. implementation
  38. uses
  39.   BigIni, uGlobCT;
  40. {$R *.DFM}
  41.  
  42. procedure TfmLoadTemplate.lbTemplatesKeyDown(Sender: TObject;
  43.   var Key: Word; Shift: TShiftState);
  44. begin
  45.   if key = vk_return then
  46.   begin
  47.     Key := 0;
  48.     sec := lbTemplates.Items[lbTemplates.Itemindex];
  49.     L.Text := ReadLines;
  50.     ParseParams(L, LVal, ListView);
  51.     PageControl1.ActivePage := tsParams;
  52.     ListView.SetFocus;
  53.   end;
  54.   if key = vk_escape then
  55.   begin
  56.     ModalResult := mrCancel;
  57.     key := 0;
  58.   end;
  59. end;
  60.  
  61. procedure TfmLoadTemplate.FormCreate(Sender: TObject);
  62. begin
  63.   with TBiggerIniFile.Create(ReadExpertPath + '\templates.ct') do
  64.   begin
  65.     ReadSections(lbTemplates.Items);
  66.     Free;
  67.   end;
  68.   L := TStringList.Create;
  69.   LVal := TStringList.Create;
  70.   Code := TStringList.Create;
  71.   ed := False;
  72.   PageControl1.ActivePage := tsTemplate;
  73. end;
  74.  
  75. function TfmLoadTemplate.ReadLines: string;
  76. var
  77.   L: TStringList;
  78. begin
  79.   L := TStringList.Create;
  80.   Result := '';
  81.   with TBiggerIniFile.Create(ReadExpertPath + '\templates.ct') do
  82.   begin
  83.     ReadNumberedList(sec, L, '', 'Code');
  84.     ReadNumberedList(sec, LVal, '', 'Value');
  85.     Free;
  86.   end;
  87.   Result := L.Text;
  88.   L.Free;
  89. end;
  90.  
  91. procedure TfmLoadTemplate.ListViewKeyDown(Sender: TObject; var Key: Word;
  92.   Shift: TShiftState);
  93. begin
  94.   if key = vk_F2 then
  95.   begin
  96.     ListView.Selected.EditCaption;
  97.     key := 0;
  98.   end;
  99.   if key = vk_return then
  100.   begin
  101.     if ed then
  102.     begin
  103.       ListView.Selected.Update;
  104.       ed := False;
  105.     end
  106.     else
  107.     begin
  108.       Code.Text := ReadCode;
  109.       ModalResult := mrOK;
  110.     end;
  111.     key := 0;
  112.   end;
  113.   if key = vk_escape then
  114.   begin
  115.     if ed then
  116.     begin
  117.       ListView.Selected.CancelEdit;
  118.       ed := False;
  119.     end
  120.     else
  121.       ModalResult := mrCancel;
  122.     key := 0;
  123.   end;
  124. end;
  125.  
  126. function TfmLoadTemplate.ReadCode: string;
  127. var
  128.   i: integer;
  129. begin
  130.   LVal.Clear;
  131.   with ListView do
  132.   begin
  133.     for i := 0 to Items.Count - 1 do
  134.       LVal.Values[Items[i].Subitems[0]] := Items[i].Caption;
  135.   end;
  136.   Result := ReplaceCode(L, LVal);
  137. end;
  138.  
  139. end.
  140.  
  141.