Changeset 830 for cprs/trunk/CPRS-Chart/fRemCoverSheet.pas
- Timestamp:
- Jul 7, 2010, 4:51:54 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cprs/trunk/CPRS-Chart/fRemCoverSheet.pas
r456 r830 5 5 uses 6 6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 7 ORCtrls, StdCtrls, ExtCtrls, ComCtrls, ImgList, mImgText, Buttons, ORClasses; 7 ORCtrls, StdCtrls, ExtCtrls, ComCtrls, ImgList, mImgText, Buttons, ORClasses, fBase508Form, 8 VA508AccessibilityManager, VA508ImageListLabeler; 8 9 9 10 type 10 11 TRemCoverDataLevel = (dlPackage, dlSystem, dlDivision, dlService, dlLocation, dlUserClass, dlUser); 11 12 12 TfrmRemCoverSheet = class(T Form)13 TfrmRemCoverSheet = class(TfrmBase508Form) 13 14 pnlBottom: TORAutoPanel; 14 15 pnlUser: TPanel; … … 16 17 lblRemLoc: TLabel; 17 18 pnlMiddle: TPanel; 18 lvView: TCaptionListView;19 19 pnlRight: TPanel; 20 20 mlgnCat: TfraImgText; … … 59 59 sbCopyLeft: TBitBtn; 60 60 splMain: TSplitter; 61 lblView: TLabel;62 lblCAC: TStaticText;63 61 btnView: TButton; 64 62 lblLegend: TLabel; 63 imgLblRemCoverSheet: TVA508ImageListLabeler; 64 compAccessCopyRight: TVA508ComponentAccessibility; 65 compAccessCopyLeft: TVA508ComponentAccessibility; 66 pnlTopLeft: TPanel; 67 lvView: TCaptionListView; 68 lblView: TLabel; 69 lblCAC: TVA508StaticText; 70 VA508ImageListLabeler1: TVA508ImageListLabeler; 65 71 procedure cbxLocationNeedData(Sender: TObject; const StartFrom: String; 66 72 Direction, InsertAt: Integer); … … 105 111 procedure btnOKClick(Sender: TObject); 106 112 procedure lvCoverDblClick(Sender: TObject); 107 procedure lvViewClick(Sender: TObject);108 113 procedure btnViewClick(Sender: TObject); 109 114 procedure lvCoverKeyDown(Sender: TObject; var Key: Word; … … 112 117 procedure cbxDivisionKeyDown(Sender: TObject; var Key: Word; 113 118 Shift: TShiftState); 119 procedure FormCreate(Sender: TObject); 120 procedure compAccessCopyRightCaptionQuery(Sender: TObject; 121 var Text: string); 122 procedure compAccessCopyLeftCaptionQuery(Sender: TObject; var Text: string); 123 procedure lvViewChange(Sender: TObject; Item: TListItem; 124 Change: TItemChange); 125 procedure lvViewSelectItem(Sender: TObject; Item: TListItem; 126 Selected: Boolean); 114 127 private 115 128 FData: TORStringList; // DataCode IEN ^ Modified Flag Object=TStringList … … 141 154 FUpdatingView: boolean; 142 155 FInternalExpansion: boolean; 156 FSavePause: integer; 157 FSelection: boolean; 158 fOldFocusChanged: TNotifyEvent; 159 procedure ActiveControlChanged(Sender: TObject); 160 procedure SetButtonHints; 143 161 procedure GetUserInfo(AUser: Int64); 144 162 function GetCurrent(IEN: Int64; Level: TRemCoverDataLevel; Show: boolean; … … 160 178 function RPad(Str: String): String; 161 179 function GetCoverSheetLvlData(ALevel, AClass: string): TStrings; 180 procedure LockButtonUpdate(data, FNAME, hint: string); 162 181 public 163 procedure Init(AsUser: boolean);182 procedure Init(AsUser: boolean); 164 183 end; 165 184 … … 169 188 170 189 uses rCore, uCore, uPCE, rProbs, rTIU, ORFn, rReminders, uReminders, 171 fRemCoverPreview ;190 fRemCoverPreview, VAUtils, VA508AccessibilityRouter; 172 191 173 192 {$R *.DFM} 193 {$R sremcvr} 174 194 175 195 const … … 221 241 IdxIEN = 6; 222 242 243 UnlockHint = 'Unlock a Reminder, reverting it''s status back to Added'; 244 LockHint = 'Lock a Reminder to prevent it''s removal from a lower' 245 + CRLF + 'level Coversheet display. For example, if you lock' 246 + CRLF + 'a Reminder at the Service level, then that Reminder' 247 + CRLF + 'can not be removed from the coversheet display at' 248 + CRLF + 'the Location, User Class, or User levels.'; 249 AddLockHint = 'Add and Lock a Reminder to prevent it''s removal from a lower' 250 + CRLF + 'level Coversheet display. For example, if you lock' 251 + CRLF + 'a Reminder at the Service level, then that Reminder' 252 + CRLF + 'can not be removed from the coversheet display at' 253 + CRLF + 'the Location, User Class, or User levels.'; 254 223 255 procedure EditCoverSheetReminderList(AsUser: boolean); 224 256 var … … 269 301 FUsers := TORStringList.Create; 270 302 FMasterList := TORStringList.Create; 271 FMasterList.Assign(GetAllRemindersAndCategories); 303 //FMasterList.Assign(GetAllRemindersAndCategories); 304 FastAssign(GetAllRemindersAndCategories, FMasterList); 272 305 for i := 0 to FMasterList.Count-1 do 273 306 begin … … 324 357 pnlUser.Visible := FALSE; 325 358 LocCombo := cbxLocation; 326 cbxDivision.Items.Assign(FDivisions); 359 //cbxDivision.Items.Assign(FDivisions); 360 FastAssign(Fdivisions, cbxDivision.Items); 327 361 cbxDivision.SelectByIEN(FCurDiv); 328 362 cbxService.InitLongList(GetExternalName(dlService, FCurSer)); … … 388 422 procedure TfrmRemCoverSheet.FormDestroy(Sender: TObject); 389 423 begin 424 Screen.OnActiveControlChange := fOldFocusChanged; 390 425 FMasterList.Free; 391 426 FUsers.Free; … … 399 434 FCatInfo.KillObjects; 400 435 FCatInfo.Free; 436 Application.HintHidePause := FSavePause //Reset Hint pause to original setting 401 437 end; 402 438 … … 406 442 begin 407 443 FUser := AUser; 408 FUserInfo.Assign(UserDivClassInfo(FUser)); 444 //FUserInfo.Assign(UserDivClassInfo(FUser)); 445 FastAssign(UserDivClassInfo(FUser), FUserInfo); 409 446 end; 410 447 end; … … 439 476 tmpSL := TORStringList.Create; 440 477 try 441 tmpSL.Assign(GetCoverSheetLvlData(lvl, cls)); 478 //tmpSL.Assign(GetCoverSheetLvlData(lvl, cls)); 479 FastAssign(GetCoverSheetLvlData(lvl, cls), tmpSL); 442 480 if (not Add) and (tmpSL.Count = 0) then 443 481 FreeAndNil(tmpSL); … … 501 539 end; 502 540 541 procedure TfrmRemCoverSheet.compAccessCopyLeftCaptionQuery(Sender: TObject; 542 var Text: string); 543 begin 544 Text := 'Remove Reminder from ' + DataName[FEditingLevel] + ' Level Reminders List'; 545 end; 546 547 procedure TfrmRemCoverSheet.compAccessCopyRightCaptionQuery( 548 Sender: TObject; var Text: string); 549 begin 550 Text := 'Copy Reminder into ' + DataName[FEditingLevel] + ' Level Reminders List'; 551 end; 552 503 553 procedure TfrmRemCoverSheet.SetupItem(Item: TListItem; const Data: string); 504 554 var … … 557 607 if idx < 0 then 558 608 idx := List.Add(IntToStr(IEN) + U + ExternalName(IEN, FileNum)); 559 Result := piece(List[idx],U,2);609 Result := piece(List[idx],U,2); 560 610 end; 561 611 … … 574 624 begin 575 625 FCurDiv := cbxDivision.ItemIEN; 626 If FCurDiv < 1 then //No value in Division combobox 627 begin 628 sbCopyLeft.Enabled := false; 629 sbCopyRight.Enabled := false; 630 FSelection := false; 631 end 632 else 633 FSelection := true; 576 634 FUpdatePending := cbDivision; 577 635 if not cbxDivision.DroppedDown then … … 582 640 begin 583 641 FCurSer := cbxService.ItemIEN; 642 If FCurSer < 1 then //No value in Service combobox 643 begin 644 sbCopyLeft.Enabled := false; 645 sbCopyRight.Enabled := false; 646 FSelection := false; 647 end 648 else 649 FSelection := true; 584 650 FUpdatePending := cbService; 585 651 if not cbxService.DroppedDown then … … 590 656 begin 591 657 FCurLoc := TORComboBox(Sender).ItemIEN; 658 If FCurLoc < 1 then //No value in Location combobox 659 begin 660 sbCopyLeft.Enabled := false; 661 sbCopyRight.Enabled := false; 662 FSelection := false; 663 end 664 else 665 FSelection := true; 592 666 FUpdatePending := cbLocation; 593 667 if not TORComboBox(Sender).DroppedDown then … … 598 672 begin 599 673 FCurClass := cbxClass.ItemIEN; 674 If FCurClass < 1 then //No value in User Class combobox 675 begin 676 sbCopyLeft.Enabled := false; 677 sbCopyRight.Enabled := false; 678 FSelection := false; 679 end 680 else 681 FSelection := true; 600 682 FUpdatePending := cbUserClass; 601 683 if not cbxClass.DroppedDown then … … 609 691 begin 610 692 FCurUser := cbxUser.ItemIEN; 693 If FCurUser < 1 then //No value in User combobox 694 begin 695 sbCopyLeft.Enabled := false; 696 sbCopyRight.Enabled := false; 697 FSelection := false; 698 end 699 else 700 FSelection := true; 611 701 GetUserInfo(FCurUser); 612 702 idx := FUserInfo.IndexOfPiece(DivisionCode); … … 679 769 end; 680 770 if FEditingIEN = 0 then 681 tmp := ' ' 771 begin 772 tmp := ' '; 773 IF FEditingLevel = dlSystem then 774 FSelection := true 775 else 776 begin 777 sbCopyLeft.Enabled := false; 778 sbCopyRight.Enabled := false; 779 FSelection := false; 780 end; 781 end 682 782 else 783 begin 683 784 tmp := ': '; 785 FSelection := true; 786 end; 684 787 lblEdit.Caption := ' Editing Cover Sheet Reminders for ' + DataName[FEditingLevel] + 685 788 tmp + GetExternalName(FEditingLevel, FEditingIEN); 686 789 lvCover.Columns[0].Caption := DataName[FEditingLevel] + ' Level Reminders'; 790 791 SetButtonHints; {Setup hints for Lock, Add, Remove buttons based on 792 Parameter Level} 687 793 UpdateView; 688 794 UpdateMasterListView; … … 690 796 else 691 797 begin 798 FSelection := false; 799 sbCopyLeft.Enabled := false; 800 sbCopyRight.Enabled := false; 692 801 FEditingLevel := dlPackage; 693 802 FEditingIEN := 0; … … 733 842 procedure TfrmRemCoverSheet.UpdateButtons; 734 843 var 735 ok: boolean;736 i : integer;844 FocusOK, ok: boolean; 845 i, idx: integer; 737 846 Current, Lowest, Highest: integer; 847 tmp: string; 848 tmpSL: TORstringlist; 849 doDownButton, doUpButton: boolean; 738 850 739 851 begin 740 852 lvCover.Enabled := (FEditingLevel <> dlPackage); 741 ok := assigned(tvAll.Selected) and (FEditingLevel <> dlPackage) ;853 ok := assigned(tvAll.Selected) and (FEditingLevel <> dlPackage) and (FSelection); 742 854 sbCopyRight.Enabled := ok; 743 855 744 ok := assigned(lvCover.Selected) and (FEditingLevel <> dlPackage) ;856 ok := assigned(lvCover.Selected) and (FEditingLevel <> dlPackage) and (FSelection); 745 857 sbCopyLeft.Enabled := ok; 746 858 … … 760 872 end; 761 873 762 btnAdd.Enabled := ok; 763 btnRemove.Enabled := ok; 764 btnLock.Enabled := ok and (FEditingLevel <> dlUser); 874 FocusOK := lvCover.Focused or sbUp.Focused or sbDown.Focused or edtSeq.Focused or 875 udSeq.Focused or btnAdd.Focused or btnRemove.Focused or btnLock.Focused or 876 btnOK.Focused; // add btnOK so you can shift-tab backwards into list 877 btnAdd.Enabled := ok and FocusOK; 878 btnRemove.Enabled := ok and (FEditingLevel <> dlSystem) and FocusOK; 879 btnLock.Enabled := ok and (FEditingLevel <> dlUser) and FocusOK; 765 880 if ok then 881 begin 882 tmpSL := GetCurrent(FEditingIEN, FEditingLevel, FALSE); 883 if assigned(tmpSL) then 884 begin 885 Idx := GetIndex(tmpSL, lvCover.Selected); 886 if Idx >= 0 then 887 begin 888 tmp := tmpSL[idx]; 889 tmp := piece(tmp,u,2); 890 tmp := copy(tmp,1,1); 891 if tmp = 'L' then 892 begin 893 LockButtonUpdate('Unlock', 'BMP_UNLOCK', UnlockHint); 894 end; 895 if tmp = 'N' then 896 begin 897 LockButtonUpdate('Lock', 'BMP_LOCK', LockHint); 898 end; 899 if tmp = 'R' then 900 begin 901 LockButtonUpdate('Add && Lock', 'BMP_LOCK', AddLockHint); 902 end; 903 end; 904 end; 766 905 ok :=(lvCover.Items.Count > 1); 906 end; 767 907 Lowest := 99999; 768 908 Highest := -1; … … 777 917 Highest := Current; 778 918 end; 779 Current := StrToIntDef(lvCover.Selected.SubItems[IdxSeq], 0) 919 Current := StrToIntDef(lvCover.Selected.SubItems[IdxSeq], 0); 780 920 end 781 921 else 782 922 Current := 0; 923 doDownButton := (sbUp.Focused and (Current = Lowest)); 924 doUpButton := (sbDown.Focused and (Current = Highest)); 783 925 sbUp.Enabled := ok and (Current > Lowest); 784 926 sbDown.Enabled := ok and (Current < Highest); 927 if doDownButton and sbDown.enabled then sbDown.SetFocus; 928 if doUpButton and sbUp.enabled then sbUp.SetFocus; 785 929 end; 786 930 … … 946 1090 MarkListAsChanged; 947 1091 SetupItem(lvCover.Selected, tmp); 1092 tmp := piece(tmp,u,2); 1093 tmp := copy(tmp,1,1); 1094 if tmp = 'L' then 1095 begin 1096 LockButtonUpdate('Unlock', 'BMP_UNLOCK', UnlockHint); 1097 end; 1098 if tmp = 'N' then 1099 begin 1100 LockButtonUpdate('Lock', 'BMP_LOCK', LockHint); 1101 end; 1102 if tmp = 'R' then 1103 begin 1104 LockButtonUpdate('Add && Lock', 'BMP_LOCK', AddLockHint); 1105 end; 948 1106 end; 949 1107 end; … … 1115 1273 SetSeq(lvCover.Selected, Seq1); 1116 1274 lvCover.CustomSort(nil, 0); 1275 If ScreenReaderSystemActive then 1276 GetScreenReader.Speak('Reminder Moved up in Sequence'); 1117 1277 UpdateButtons; 1118 1278 end; … … 1141 1301 SetSeq(lvCover.Selected, Seq1); 1142 1302 lvCover.CustomSort(nil, 0); 1303 If ScreenReaderSystemActive then 1304 GetScreenReader.Speak('Reminder Moved down in Sequence'); 1143 1305 UpdateButtons; 1144 1306 end; … … 1184 1346 if ListHasData(IEN, IdxIEN) then 1185 1347 begin 1186 ShowM essage('List already contains this Reminder');1348 ShowMsg('List already contains this Reminder'); 1187 1349 exit; 1188 1350 end; … … 1221 1383 end; 1222 1384 end; 1385 if ScreenReaderSystemActive then 1386 GetScreenReader.Speak('Reminder Added to ' + DataName[FEditingLevel] + ' Level Reminders List'); 1223 1387 end; 1224 1388 end; … … 1283 1447 end; 1284 1448 end; 1285 end; 1286 end; 1449 if ScreenReaderSystemActive then 1450 GetScreenReader.Speak('Reminder Removed from ' + DataName[FEditingLevel] + ' Level Reminders List'); 1451 end; 1452 end; 1453 if sbCopyLeft.Enabled and (not sbCopyLeft.Focused) then 1454 sbCopyLeft.SetFocus; 1287 1455 end; 1288 1456 end; … … 1370 1538 end; 1371 1539 1372 procedure TfrmRemCoverSheet.lvViewClick(Sender: TObject); 1540 procedure TfrmRemCoverSheet.lvViewChange(Sender: TObject; Item: TListItem; 1541 Change: TItemChange); 1542 begin 1543 lvViewSelectItem(Sender, Item, FALSE); 1544 end; 1545 1546 procedure TfrmRemCoverSheet.lvViewSelectItem(Sender: TObject; Item: TListItem; 1547 Selected: Boolean); 1373 1548 var 1374 1549 lvl: TRemCoverDataLevel; … … 1475 1650 1476 1651 begin 1477 frmRemCoverPreview := TfrmRemCoverPreview.Create(Application);1652 Screen.OnActiveControlChange := fOldFocusChanged; 1478 1653 try 1479 CurSortOrder := FTopSortTag; 1480 CurSortDir := FTopSortUp; 1481 lvView.Items.BeginUpdate; 1654 frmRemCoverPreview := TfrmRemCoverPreview.Create(Application); 1482 1655 try 1483 FTopSortTag := 3; 1484 FTopSortUp := TRUE; 1485 lvView.CustomSort(nil, 0); 1486 RemList := TORStringList.Create; 1656 CurSortOrder := FTopSortTag; 1657 CurSortDir := FTopSortUp; 1658 lvView.Items.BeginUpdate; 1487 1659 try 1488 LvlList := TORStringList.Create; 1660 FTopSortTag := 3; 1661 FTopSortUp := TRUE; 1662 lvView.CustomSort(nil, 0); 1663 RemList := TORStringList.Create; 1489 1664 try 1490 LastLvl := ''; 1491 for i := 0 to lvView.Items.Count-1 do 1492 begin 1493 Lvl := lvView.Items[i].SubItems[IdxLvl2]; 1494 if LvL <> LastLvl then 1665 LvlList := TORStringList.Create; 1666 try 1667 LastLvl := ''; 1668 for i := 0 to lvView.Items.Count-1 do 1495 1669 begin 1496 RemList.AddStrings(LvlList); 1497 LvlList.Clear; 1498 LastLvl := Lvl; 1499 end; 1500 IEN := lvView.Items[i].SubItems[IdxIEN]; 1501 AddCode := lvView.Items[i].SubItems[IdxAdd]; 1502 idx := RemList.IndexOfPiece(IEN); 1503 if AddCode = CVRemoveCode then 1504 begin 1505 if(idx >= 0) and (piece(RemList[idx],U,5) <> '1') then 1506 RemList.Delete(idx); 1507 end 1508 else 1509 begin 1510 if idx < 0 then 1670 Lvl := lvView.Items[i].SubItems[IdxLvl2]; 1671 if LvL <> LastLvl then 1511 1672 begin 1512 Seq := lvView.Items[i].SubItems[IdxSeq]; 1513 SortID := RPad(Seq) + '0000000' + lvl + copy(lvView.Items[i].SubItems[IdxTIEN] + '0000000000',1,10); 1514 tmp := IEN + U + lvView.Items[i].Caption + U + Seq + U + SortID; 1515 if AddCode = CVLockCode then 1516 tmp := tmp + U + '1'; 1517 RemList.Add(tmp); 1673 RemList.AddStrings(LvlList); 1674 LvlList.Clear; 1675 LastLvl := Lvl; 1676 end; 1677 IEN := lvView.Items[i].SubItems[IdxIEN]; 1678 AddCode := lvView.Items[i].SubItems[IdxAdd]; 1679 idx := RemList.IndexOfPiece(IEN); 1680 if AddCode = CVRemoveCode then 1681 begin 1682 if(idx >= 0) and (piece(RemList[idx],U,5) <> '1') then 1683 RemList.Delete(idx); 1518 1684 end 1519 1685 else 1520 if (AddCode = CVLockCode) and (piece(RemList[idx],U,5) <> '1') then1521 1686 begin 1522 tmp := RemList[idx]; 1523 SetPiece(tmp,U,5,'1'); 1524 RemList[idx] := tmp; 1687 if idx < 0 then 1688 begin 1689 Seq := lvView.Items[i].SubItems[IdxSeq]; 1690 SortID := RPad(Seq) + '0000000' + lvl + copy(lvView.Items[i].SubItems[IdxTIEN] + '0000000000',1,10); 1691 tmp := IEN + U + lvView.Items[i].Caption + U + Seq + U + SortID; 1692 if AddCode = CVLockCode then 1693 tmp := tmp + U + '1'; 1694 RemList.Add(tmp); 1695 end 1696 else 1697 if (AddCode = CVLockCode) and (piece(RemList[idx],U,5) <> '1') then 1698 begin 1699 tmp := RemList[idx]; 1700 SetPiece(tmp,U,5,'1'); 1701 RemList[idx] := tmp; 1702 end; 1525 1703 end; 1526 1704 end; 1527 end; 1528 RemList.AddStrings(LvlList); 1529 FTopSortTag := CurSortOrder; 1530 FTopSortUp := CurSortDir; 1531 lvView.CustomSort(nil, 0); 1532 1533 LvlList.Clear; 1534 LvlList.Assign(RemList); 1535 RemList.Clear; 1536 FInternalExpansion := TRUE; 1537 try 1538 for i := 0 to LvlList.Count-1 do 1539 begin 1540 IEN := piece(LvlList[i],U,1); 1541 if (copy(LvlList[i],1,1) = CVCatCode) then 1705 RemList.AddStrings(LvlList); 1706 FTopSortTag := CurSortOrder; 1707 FTopSortUp := CurSortDir; 1708 lvView.CustomSort(nil, 0); 1709 1710 LvlList.Clear; 1711 //LvlList.Assign(RemList); 1712 FastAssign(RemList, LvlList); 1713 RemList.Clear; 1714 FInternalExpansion := TRUE; 1715 try 1716 for i := 0 to LvlList.Count-1 do 1542 1717 begin 1543 ANode := tvAll.Items.GetFirstNode;1544 while assigned(ANode) do1718 IEN := piece(LvlList[i],U,1); 1719 if (copy(LvlList[i],1,1) = CVCatCode) then 1545 1720 begin 1546 if IEN = piece(TORTreeNode(ANode).StringData,U,1) then 1721 ANode := tvAll.Items.GetFirstNode; 1722 while assigned(ANode) do 1547 1723 begin 1548 SeqCnt := 0; 1549 GetAllChildren(ANode, Piece(LvlList[i], U, 3), Piece(LvlList[i], U, 4)); 1550 ANode := nil; 1551 end 1552 else 1553 ANode := ANode.GetNextSibling; 1554 end; 1555 end 1556 else 1557 if RemList.IndexOfPiece(IEN) < 0 then 1558 RemList.Add(LvlList[i]); 1724 if IEN = piece(TORTreeNode(ANode).StringData,U,1) then 1725 begin 1726 SeqCnt := 0; 1727 GetAllChildren(ANode, Piece(LvlList[i], U, 3), Piece(LvlList[i], U, 4)); 1728 ANode := nil; 1729 end 1730 else 1731 ANode := ANode.GetNextSibling; 1732 end; 1733 end 1734 else 1735 if RemList.IndexOfPiece(IEN) < 0 then 1736 RemList.Add(LvlList[i]); 1737 end; 1738 finally 1739 FInternalExpansion := FALSE; 1559 1740 end; 1560 1741 finally 1561 FInternalExpansion := FALSE; 1742 LvlList.Free; 1743 end; 1744 1745 RemList.SortByPiece(4); 1746 for i := 0 to RemList.Count-1 do 1747 begin 1748 with frmRemCoverPreview.lvMain.Items.Add do 1749 begin 1750 tmp := RemList[i]; 1751 Caption := Piece(tmp, U, 2); 1752 SubItems.Add(Piece(tmp, U, 3)); 1753 SubItems.Add(Piece(tmp, U, 4)); 1754 end; 1562 1755 end; 1563 1756 finally 1564 LvlList.Free; 1565 end; 1566 1567 RemList.SortByPiece(4); 1568 for i := 0 to RemList.Count-1 do 1569 begin 1570 with frmRemCoverPreview.lvMain.Items.Add do 1571 begin 1572 tmp := RemList[i]; 1573 Caption := Piece(tmp, U, 2); 1574 SubItems.Add(Piece(tmp, U, 3)); 1575 SubItems.Add(Piece(tmp, U, 4)); 1576 end; 1757 RemList.Free; 1577 1758 end; 1578 1759 finally 1579 RemList.Free; 1580 end; 1760 lvView.Items.EndUpdate; 1761 end; 1762 frmRemCoverPreview.ShowModal; 1581 1763 finally 1582 lvView.Items.EndUpdate; 1583 end; 1584 frmRemCoverPreview.ShowModal; 1764 frmRemCoverPreview.Free; 1765 end; 1585 1766 finally 1586 frmRemCoverPreview.Free;1767 Screen.OnActiveControlChange := ActiveControlChanged; 1587 1768 end; 1588 1769 end; … … 1592 1773 begin 1593 1774 if (Key = VK_DELETE) and sbCopyLeft.Enabled then 1594 sbCopyLeft.Click; 1775 sbCopyLeft.Click; 1595 1776 end; 1596 1777 … … 1598 1779 begin 1599 1780 if (Key < '0') or (Key > '9') then 1600 Key := #0; 1781 Key := #0; 1601 1782 end; 1602 1783 … … 1604 1785 var Key: Word; Shift: TShiftState); 1605 1786 begin 1606 if (Key = VK_RETURN) and TORComboBox(Sender).DroppedDown then 1607 TORComboBox(Sender).DroppedDown := FALSE; 1787 if (Key = VK_RETURN) and TORComboBox(Sender).DroppedDown then 1788 TORComboBox(Sender).DroppedDown := FALSE; 1608 1789 end; 1609 1790 … … 1625 1806 end; 1626 1807 1808 procedure TfrmRemCoverSheet.SetButtonHints; 1809 {This procedure sets the Lock, Add, and Remove button hints based on the 1810 selected parameter level} 1811 begin 1812 if FEditingLevel = dlDivision then 1813 begin 1814 btnLock.hint := 'Adds Reminder to the Coversheet display and Locks the Reminder' 1815 + CRLF + 'so it can not be removed from the Coversheet display at any' 1816 + CRLF + 'of the lower levels (Service, Location, User Class, User).'; 1817 btnRemove.hint := 'Removes Reminders from the Coversheet display. Will not' 1818 + CRLF + 'remove Reminders which are locked at the System level.'; 1819 btnAdd.hint := 'Adds Reminders to the Coversheet at the Division level and' 1820 + CRLF + 'below. It also removes the lock from a Reminder locked at' 1821 + CRLF + 'the Division level while leaving the Reminder on the Coversheet.'; 1822 end 1823 else if FEditingLevel = dlService then 1824 begin 1825 btnLock.hint := 'Adds Reminder to the Coversheet display and Locks the Reminder' 1826 + CRLF + 'so it can not be removed from the Coversheet display at any of' 1827 + CRLF + 'the lower levels (Location, User Class, User).'; 1828 btnRemove.hint := 'Removes Reminders from the Coversheet display. Will not' 1829 + CRLF + 'remove Reminders which are locked at the Division level or higher.'; 1830 btnAdd.hint := 'Adds Reminders to the Coversheet at the Service level and' 1831 + CRLF + 'below. It also removes the lock from a Reminder locked at the' 1832 + CRLF + 'Service level while leaving the Reminder on the Coversheet.'; 1833 end 1834 else if FEditingLevel = dlLocation then 1835 begin 1836 btnLock.hint := 'Adds Reminder to the Coversheet display and Locks the Reminder' 1837 + CRLF + 'so it can not be removed from the Coversheet display at any of' 1838 + CRLF + 'the lower levels (User Class, User).'; 1839 btnRemove.hint := 'Removes Reminders from the Coversheet display. Will not' 1840 + CRLF + 'remove Reminders which are locked at the Service level or higher.'; 1841 btnAdd.hint := 'Adds Reminders to the Coversheet at the Location level and' 1842 + CRLF + 'below. It also removes the lock from a Reminder locked at the' 1843 + CRLF + 'Location level while leaving the Reminder on the Coversheet.'; 1844 end 1845 else if FEditingLevel = dlUserClass then 1846 begin 1847 btnLock.hint := 'Adds Reminder to the Coversheet display and Locks the Reminder so' 1848 + CRLF + 'it can not be removed from the Coversheet display at the User level.'; 1849 btnRemove.hint := 'Removes Reminders from the Coversheet display. Will not remove' 1850 + CRLF + 'Reminders which are locked at the Location level or higher.'; 1851 btnAdd.hint := 'Adds Reminders to the Coversheet at the User Class level and' 1852 + CRLF + 'below. It also removes the lock from a Reminder locked at the' 1853 + CRLF + 'User Class level while leaving the Reminder on the Coversheet.'; 1854 end 1855 else if FEditingLevel = dlUser then 1856 begin 1857 btnRemove.hint := 'Removes Reminders from the Coversheet display. Will not' 1858 + CRLF + 'remove Reminders which are locked at the User Class level' 1859 + CRLF + 'or higher.'; 1860 btnAdd.hint := 'Adds Reminders to the Coversheet at the User level.'; 1861 end 1862 else 1863 begin 1864 btnLock.hint := 'Adds Reminder to the Coversheet display and Locks the Reminder' 1865 + CRLF + 'so it can not be removed from the Coversheet display at any of' 1866 + CRLF + 'the lower levels (Division, Service, Location, User Class, User).'; 1867 btnRemove.hint := 'Removes Reminders from the Coversheet display.'; 1868 btnAdd.hint := 'Adds Reminders to the Coversheet at the System level and' 1869 + CRLF + 'below. It also removes the lock from a Reminder locked at the' 1870 + CRLF + 'System level while leaving the Reminder on the Coversheet.'; 1871 end; 1872 end; 1873 1874 procedure TfrmRemCoverSheet.FormCreate(Sender: TObject); 1875 begin 1876 FSavePause := Application.HintHidePause; //Save Hint Pause setting 1877 Application.HintHidePause := 20000; //Reset Hint Pause to 20 seconds 1878 mlgnLock.hint := 'Lock a Reminder to prevent it''s removal from a lower' 1879 + CRLF + 'level Coversheet display. For example, if you lock' 1880 + CRLF + 'a Reminder at the Service level, then that Reminder' 1881 + CRLF + 'can not be removed from the coversheet display at' 1882 + CRLF + 'the Location, User Class, or User levels.'; 1883 fOldFocusChanged := Screen.OnActiveControlChange; 1884 Screen.OnActiveControlChange := ActiveControlChanged; 1885 end; 1886 1887 procedure TfrmRemCoverSheet.ActiveControlChanged(Sender: TObject); 1888 begin 1889 if assigned(fOldFocusChanged) then fOldFocusChanged(Sender); 1890 UpdateButtons; 1891 end; 1892 1893 procedure TfrmRemCoverSheet.LockButtonUpdate(Data, FNAME, Hint: string); 1894 begin 1895 btnLock.Caption := Data; 1896 btnLock.Glyph.LoadFromResourceName(hinstance, FNAME); 1897 if btnLock.Hint <> Hint then btnLock.Hint := Hint; 1898 if FNAME = 'BMP_LOCK' then btnLock.OnClick := btnLockClick 1899 else 1900 btnLock.OnClick := btnAddClick; 1901 end; 1902 1627 1903 end.
Note:
See TracChangeset
for help on using the changeset viewer.