home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / delphi / experti / d456 / BROMBSCT.ZIP / uMain.pas < prev    next >
Pascal/Delphi Source File  |  2002-07-03  |  5KB  |  207 lines

  1. unit uMain;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, Buttons, ComCtrls, Menus, ExtCtrls, BigIni, ShellApi;
  8.  
  9. type
  10.   TfmMain = class(TForm)
  11.     Memo: TMemo;
  12.     ListView: TListView;
  13.     MainMenu: TMainMenu;
  14.     itmTemplate: TMenuItem;
  15.     itmNew: TMenuItem;
  16.     itmDelete: TMenuItem;
  17.     N1: TMenuItem;
  18.     itmClose: TMenuItem;
  19.     Panel1: TPanel;
  20.     cbNames: TComboBox;
  21.     itmSave: TMenuItem;
  22.     StatusBar1: TStatusBar;
  23.     btnNew: TSpeedButton;
  24.     btnsave: TSpeedButton;
  25.     btnDel: TSpeedButton;
  26.     itmHelp: TMenuItem;
  27.     itmContents: TMenuItem;
  28.     N2: TMenuItem;
  29.     itmAbout: TMenuItem;
  30.     btnClose: TSpeedButton;
  31.     procedure ListViewKeyDown(Sender: TObject; var Key: Word;
  32.       Shift: TShiftState);
  33.     procedure FormCreate(Sender: TObject);
  34.     procedure MemoChange(Sender: TObject);
  35.     procedure ListViewEdited(Sender: TObject; Item: TListItem;
  36.       var S: string);
  37.     procedure itmNewClick(Sender: TObject);
  38.     procedure itmSaveClick(Sender: TObject);
  39.     procedure cbNamesChange(Sender: TObject);
  40.     procedure itmDeleteClick(Sender: TObject);
  41.     procedure itmCloseClick(Sender: TObject);
  42.     procedure itmAboutClick(Sender: TObject);
  43.   private
  44.     { Private declarations }
  45.     path: string;
  46.     listVal: TstringList;
  47.     listTemp: TStringList;
  48. //    procedure ParseParams;
  49.  
  50.     procedure ReadTemplates;
  51.     procedure NewTemplate;
  52.     procedure SaveTemplate;
  53.     procedure ReadTemplate;
  54.     procedure DeleteTemplate;
  55.   public
  56.     { Public declarations }
  57.   end;
  58.  
  59. var
  60.   fmMain: TfmMain;
  61.  
  62. implementation
  63. uses
  64.   uGlobCT, StrUtils, ULoadTemplate;
  65. {$R *.DFM}
  66.  
  67. procedure TfmMain.ListViewKeyDown(Sender: TObject; var Key: Word;
  68.   Shift: TShiftState);
  69. begin
  70.   if key = vk_F2 then
  71.   begin
  72.     ListView.Selected.EditCaption;
  73.     key := 0;
  74.   end;
  75.   if key = vk_return then
  76.   begin
  77.     ListView.Selected.Update;
  78.     key := 0;
  79.   end;
  80.   if key = vk_escape then
  81.   begin
  82.     ListView.Selected.CancelEdit;
  83.     key := 0;
  84.   end;
  85. end;
  86.  
  87. procedure TfmMain.FormCreate(Sender: TObject);
  88. begin
  89.   ListVal := TStringlist.Create;
  90.   ListTemp := TStringlist.Create;
  91.   ReadTemplates;
  92. end;
  93.  
  94. procedure TfmMain.MemoChange(Sender: TObject);
  95. begin
  96.   listTemp.Text := Memo.Lines.Text;
  97.   ParseParams(listTemp, listVal, ListView);
  98. end;
  99.  
  100. procedure TfmMain.ListViewEdited(Sender: TObject; Item: TListItem;
  101.   var S: string);
  102. begin
  103.   ListVal.Values[Item.Subitems[0]] := S;
  104. end;
  105.  
  106. procedure TfmMain.ReadTemplates;
  107. begin
  108.   with TBiggerIniFile.Create(ReadExpertPath + '\templates.ct') do
  109.   begin
  110.     ReadSections(cbNames.Items);
  111.     Free;
  112.   end;
  113. end;
  114.  
  115. procedure TfmMain.NewTemplate;
  116. begin
  117.   cbNames.Style := csSimple;
  118.   cbNames.Text := '';
  119.   Memo.Lines.Clear;
  120.   ListView.Items.Clear;
  121.   cbNames.SetFocus;
  122. end;
  123.  
  124. procedure TfmMain.itmNewClick(Sender: TObject);
  125. begin
  126.   NewTemplate;
  127. end;
  128.  
  129. procedure TfmMain.SaveTemplate;
  130. var
  131.   s: string;
  132. begin
  133.   with TBiggerIniFile.Create(ReadExpertPath + '\templates.ct') do
  134.   begin
  135.     s := cbNames.Text;
  136.     WriteNumberedList(cbNames.Text, Memo.Lines, 'Code');
  137.     WriteNumberedList(cbNames.Text, ListVal, 'Value');
  138.     Free;
  139.   end;
  140.   ReadTemplates;
  141.   cbNames.Style := csDropDownList;
  142.   cbNames.ItemIndex := cbNames.Items.Indexof(s);
  143.   cbNamesChange(cbNames);
  144. end;
  145.  
  146. procedure TfmMain.itmSaveClick(Sender: TObject);
  147. begin
  148.   SaveTemplate;
  149. end;
  150.  
  151. procedure TfmMain.ReadTemplate;
  152. begin
  153.   if cbNames.Style = csSimple then exit;
  154.   with TBiggerIniFile.Create(ReadExpertPath + '\templates.ct') do
  155.   begin
  156.     Memo.Lines.Clear;
  157.     ReadNumberedList(cbNames.Text, ListVal, '', 'Value');
  158.     ReadNumberedList(cbNames.Text, Memo.Lines, '', 'Code');
  159.     Free;
  160.   end;
  161. end;
  162.  
  163. procedure TfmMain.cbNamesChange(Sender: TObject);
  164. begin
  165.   ReadTemplate;
  166. end;
  167.  
  168. procedure TfmMain.DeleteTemplate;
  169. var
  170.   i: integer;
  171. begin
  172.   i := cbNames.ItemIndex;
  173.   with TBiggerIniFile.Create(ReadExpertPath + '\templates.ct') do
  174.   begin
  175.     EraseSection(cbNames.Text);
  176.     Free;
  177.   end;
  178.   ReadTemplates;
  179.   cbNames.Style := csDropDownList;
  180.   dec(i);
  181.   if i > -1 then cbNames.ItemIndex := i;
  182.   cbNamesChange(cbNames);
  183. end;
  184.  
  185. procedure TfmMain.itmDeleteClick(Sender: TObject);
  186. begin
  187.   DeleteTemplate;
  188. end;
  189.  
  190. procedure TfmMain.itmCloseClick(Sender: TObject);
  191. begin
  192.   Close;
  193. end;
  194.  
  195. procedure TfmMain.itmAboutClick(Sender: TObject);
  196. var
  197.   s: string;
  198. begin
  199.   s := 'Autor: brombs'#13#10 +
  200.     'Email: brombs@wp.pl';
  201. //  Application.MessageBox(Pchar(s), 'About', mb_ok + mb_iconinformation);
  202.   ShellAbout(Application.Handle, 'Code Template ver. 1.0', pchar(s), Icon.Handle);
  203. end;
  204.  
  205. end.
  206.  
  207.