Changeset 110 for branches/generator/Forms/UFormRule.pas
- Timestamp:
- Aug 8, 2017, 11:15:41 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/generator/Forms/UFormRule.pas
r109 r110 7 7 uses 8 8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, 9 URules;9 ComCtrls, ActnList, Menus, URules; 10 10 11 11 type … … 14 14 15 15 TFormRule = class(TForm) 16 AAdd: TAction; 17 AModify: TAction; 18 ARemove: TAction; 19 ActionList1: TActionList; 16 20 ButtonOk: TButton; 17 21 ButtonCancel: TButton; 18 22 EditName: TEdit; 19 23 Label1: TLabel; 24 ListView: TListView; 25 MenuItem1: TMenuItem; 26 MenuItem2: TMenuItem; 27 MenuItem3: TMenuItem; 28 PopupMenu1: TPopupMenu; 29 procedure AAddExecute(Sender: TObject); 30 procedure AModifyExecute(Sender: TObject); 31 procedure ARemoveExecute(Sender: TObject); 20 32 procedure FormShow(Sender: TObject); 33 procedure ListViewData(Sender: TObject; Item: TListItem); 34 procedure ListViewDblClick(Sender: TObject); 35 procedure ListViewKeyPress(Sender: TObject; var Key: char); 36 procedure ListViewSelectItem(Sender: TObject; Item: TListItem; 37 Selected: Boolean); 21 38 private 22 39 { private declarations } 23 40 public 41 RuleItems: TRuleItems; 42 procedure UpdateInterface; 43 procedure ReloadList; 24 44 procedure LoadData(Rule: TRule); 25 45 procedure SaveData(Rule: TRule); … … 29 49 FormRule: TFormRule; 30 50 51 31 52 implementation 32 53 33 54 {$R *.lfm} 55 56 uses 57 UFormRuleItem; 34 58 35 59 { TFormRule } … … 38 62 begin 39 63 EditName.SetFocus; 64 ReloadList; 65 UpdateInterface; 66 end; 67 68 procedure TFormRule.ListViewData(Sender: TObject; Item: TListItem); 69 begin 70 if (Item.Index >= 0) and (Item.Index < RuleItems.Count) then begin 71 Item.Caption := RuleItems[Item.Index].Name; 72 Item.Data := RuleItems[Item.Index]; 73 end; 74 end; 75 76 procedure TFormRule.ListViewDblClick(Sender: TObject); 77 begin 78 AModify.Execute; 79 end; 80 81 procedure TFormRule.ListViewKeyPress(Sender: TObject; var Key: char); 82 begin 83 if Key = #13 then AModify.Execute; 84 end; 85 86 procedure TFormRule.ListViewSelectItem(Sender: TObject; Item: TListItem; 87 Selected: Boolean); 88 begin 89 UpdateInterface; 90 end; 91 92 procedure TFormRule.AAddExecute(Sender: TObject); 93 var 94 NewRuleItem: TRuleItem; 95 begin 96 NewRuleItem := TRuleItem.Create; 97 FormRuleItem.LoadData(NewRuleItem); 98 if FormRuleItem.ShowModal = mrOk then begin 99 FormRuleItem.SaveData(NewRuleItem); 100 RuleItems.Add(NewRuleItem); 101 ReloadList; 102 end else FreeAndNil(NewRuleItem); 103 end; 104 105 procedure TFormRule.AModifyExecute(Sender: TObject); 106 var 107 RuleItem: TRuleItem; 108 begin 109 RuleItem := TRuleItem(ListView.Selected.Data); 110 FormRuleItem.LoadData(RuleItem); 111 if FormRuleItem.ShowModal = mrOk then begin 112 FormRuleItem.SaveData(RuleItem); 113 ReloadList; 114 end; 115 end; 116 117 procedure TFormRule.ARemoveExecute(Sender: TObject); 118 var 119 Item: TListItem; 120 begin 121 for Item in ListView.Items do 122 if Item.Selected then 123 RuleItems.Remove(TRuleItem(Item.Data)); 124 ReloadList; 125 end; 126 127 procedure TFormRule.UpdateInterface; 128 begin 129 AModify.Enabled := Assigned(ListView.Selected); 130 ARemove.Enabled := Assigned(ListView.Selected); 131 end; 132 133 procedure TFormRule.ReloadList; 134 begin 135 ListView.Items.Count := RuleItems.Count; 136 ListView.Refresh; 40 137 end; 41 138 … … 43 140 begin 44 141 EditName.Text := Rule.Name; 142 RuleItems := Rule.Items; 45 143 end; 46 144
Note:
See TracChangeset
for help on using the changeset viewer.