Changeset 145 for trunk/Forms/UFormCategories.pas
- Timestamp:
- Jan 24, 2017, 1:55:43 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Forms/UFormCategories.pas
r123 r145 7 7 uses 8 8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, 9 ActnList, Menus, UAcronym ;9 ActnList, Menus, UAcronym, UListViewSort; 10 10 11 11 type … … 15 15 TFormCategories = class(TForm) 16 16 AAdd: TAction; 17 AEnable: TAction; 18 ADisable: TAction; 17 19 ASelectAll: TAction; 18 20 ARemove: TAction; … … 20 22 ActionList1: TActionList; 21 23 ListViewCategories: TListView; 24 ListViewSort1: TListViewSort; 22 25 MenuItem1: TMenuItem; 23 26 MenuItem2: TMenuItem; 24 27 MenuItem3: TMenuItem; 25 28 MenuItem4: TMenuItem; 29 MenuItem5: TMenuItem; 30 MenuItem6: TMenuItem; 31 MenuItem7: TMenuItem; 26 32 PopupMenuCategory: TPopupMenu; 27 33 ToolBar1: TToolBar; … … 30 36 ToolButton3: TToolButton; 31 37 procedure AAddExecute(Sender: TObject); 38 procedure ADisableExecute(Sender: TObject); 39 procedure AEnableExecute(Sender: TObject); 32 40 procedure AModifyExecute(Sender: TObject); 33 41 procedure ARemoveExecute(Sender: TObject); … … 36 44 procedure FormCreate(Sender: TObject); 37 45 procedure FormShow(Sender: TObject); 46 procedure ListViewCategoriesChange(Sender: TObject; Item: TListItem; 47 Change: TItemChange); 38 48 procedure ListViewCategoriesData(Sender: TObject; Item: TListItem); 39 49 procedure ListViewCategoriesDblClick(Sender: TObject); … … 41 51 procedure ListViewCategoriesSelectItem(Sender: TObject; Item: TListItem; 42 52 Selected: Boolean); 53 function ListViewSort1CompareItem(Item1, Item2: TObject): Integer; 54 procedure ListViewSort1Filter(ListViewSort: TListViewSort); 43 55 private 44 56 { private declarations } … … 73 85 UpdateList; 74 86 Core.ScaleDPI1.ScaleControl(ToolBar1, Core.ScaleDPI1.DesignDPI); 87 end; 88 89 procedure TFormCategories.ListViewCategoriesChange(Sender: TObject; 90 Item: TListItem; Change: TItemChange); 91 begin 92 if Assigned(Item) and (Change = ctState) then begin 93 TAcronymCategory(Item.Data).Enabled := Item.Checked; 94 Core.AcronymDb.Modified := True; 95 end; 75 96 end; 76 97 … … 87 108 end else ShowMessage(Format(SCategoryAlreadyExists, [S])); 88 109 end; 110 end; 111 112 procedure TFormCategories.ADisableExecute(Sender: TObject); 113 var 114 I: Integer; 115 begin 116 for I := ListViewCategories.Items.Count - 1 downto 0 do 117 if ListViewCategories.Items[I].Selected then begin 118 TAcronymCategory(ListViewCategories.Items[I].Data).Enabled := False; 119 Core.AcronymDb.Modified := True; 120 end; 121 UpdateList; 122 end; 123 124 procedure TFormCategories.AEnableExecute(Sender: TObject); 125 var 126 I: Integer; 127 begin 128 for I := ListViewCategories.Items.Count - 1 downto 0 do 129 if ListViewCategories.Items[I].Selected then begin 130 TAcronymCategory(ListViewCategories.Items[I].Data).Enabled := True; 131 Core.AcronymDb.Modified := True; 132 end; 133 UpdateList; 89 134 end; 90 135 … … 145 190 procedure TFormCategories.ListViewCategoriesData(Sender: TObject; Item: TListItem); 146 191 begin 147 if Item.Index < Core.AcronymDb.Categories.Count then148 with TAcronymCategory( Core.AcronymDb.Categories[Item.Index]) do begin192 if Item.Index < ListViewSort1.List.Count then 193 with TAcronymCategory(ListViewSort1.List[Item.Index]) do begin 149 194 Item.Caption := Name; 150 Item.Data := Core.AcronymDb.Categories[Item.Index];195 Item.Data := ListViewSort1.List[Item.Index]; 151 196 Item.SubItems.Add(IntToStr(AcronymMeanings.Count)); 197 Item.Checked := Enabled; 152 198 end; 153 199 end; … … 170 216 end; 171 217 218 function TFormCategories.ListViewSort1CompareItem(Item1, Item2: TObject 219 ): Integer; 220 begin 221 Result := 0; 222 if Assigned(Item1) and Assigned(Item2) and (ListViewSort1.Order <> soNone) then begin 223 with ListViewSort1 do 224 case Column of 225 0: Result := CompareString(TAcronymCategory(Item1).Name, TAcronymCategory(Item2).Name); 226 1: Result := CompareInteger(TAcronymCategory(Item1).AcronymMeanings.Count, TAcronymCategory(Item2).AcronymMeanings.Count); 227 end; 228 if ListViewSort1.Order = soDown then Result := -Result; 229 end else Result := 0; 230 end; 231 232 procedure TFormCategories.ListViewSort1Filter(ListViewSort: TListViewSort); 233 begin 234 Core.AcronymDb.Categories.AssignToList(ListViewSort1.List); 235 end; 236 172 237 procedure TFormCategories.UpdateList; 173 238 begin 239 ListViewSort1.Refresh; 174 240 ListViewCategories.Items.Count := Core.AcronymDb.Categories.Count; 175 241 ListViewCategories.Refresh;
Note:
See TracChangeset
for help on using the changeset viewer.