Changeset 308 for trunk/Packages/Common
- Timestamp:
- Aug 18, 2021, 11:50:13 AM (3 years ago)
- Location:
- trunk/Packages/Common
- Files:
-
- 16 added
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Packages/Common/Common.lpk
r192 r308 37 37 </Other> 38 38 </CompilerOptions> 39 <Description Value="Various libraries"/> 40 <License Value="GNU/GPL"/> 41 <Version Minor="7"/> 42 <Files Count="22"> 39 <Description Value="Common package with various useful units. 40 41 Source: https://svn.zdechov.net/PascalClassLibrary/Common/"/> 42 <License Value="Copy left."/> 43 <Version Minor="8"/> 44 <Files Count="29"> 43 45 <Item1> 44 46 <Filename Value="StopWatch.pas"/> … … 60 62 <Item5> 61 63 <Filename Value="UPrefixMultiplier.pas"/> 64 <HasRegisterProc Value="True"/> 62 65 <UnitName Value="UPrefixMultiplier"/> 63 66 </Item5> … … 138 141 <UnitName Value="UStringTable"/> 139 142 </Item22> 143 <Item23> 144 <Filename Value="UMetaCanvas.pas"/> 145 <UnitName Value="UMetaCanvas"/> 146 </Item23> 147 <Item24> 148 <Filename Value="UGeometric.pas"/> 149 <UnitName Value="UGeometric"/> 150 </Item24> 151 <Item25> 152 <Filename Value="UTranslator.pas"/> 153 <HasRegisterProc Value="True"/> 154 <UnitName Value="UTranslator"/> 155 </Item25> 156 <Item26> 157 <Filename Value="ULanguages.pas"/> 158 <UnitName Value="ULanguages"/> 159 </Item26> 160 <Item27> 161 <Filename Value="UFormAbout.pas"/> 162 <UnitName Value="UFormAbout"/> 163 </Item27> 164 <Item28> 165 <Filename Value="UAboutDialog.pas"/> 166 <HasRegisterProc Value="True"/> 167 <UnitName Value="UAboutDialog"/> 168 </Item28> 169 <Item29> 170 <Filename Value="UPixelPointer.pas"/> 171 <UnitName Value="UPixelPointer"/> 172 </Item29> 140 173 </Files> 141 174 <i18n> … … 144 177 <EnableI18NForLFM Value="True"/> 145 178 </i18n> 146 <RequiredPkgs Count=" 3">179 <RequiredPkgs Count="2"> 147 180 <Item1> 148 181 <PackageName Value="LCL"/> 149 182 </Item1> 150 183 <Item2> 151 <PackageName Value="TemplateGenerics"/>152 </Item2>153 <Item3>154 184 <PackageName Value="FCL"/> 155 185 <MinVersion Major="1" Valid="True"/> 156 </Item 3>186 </Item2> 157 187 </RequiredPkgs> 158 188 <UsageOptions> -
trunk/Packages/Common/Common.pas
r192 r308 12 12 UMemory, UResetableThread, UPool, ULastOpenedList, URegistry, 13 13 UJobProgressView, UXMLUtils, UApplicationInfo, USyncCounter, UListViewSort, 14 UPersistentForm, UFindFile, UScaleDPI, UTheme, UStringTable, 15 LazarusPackageIntf; 14 UPersistentForm, UFindFile, UScaleDPI, UTheme, UStringTable, UMetaCanvas, 15 UGeometric, UTranslator, ULanguages, UFormAbout, UAboutDialog, 16 UPixelPointer, LazarusPackageIntf; 16 17 17 18 implementation … … 20 21 begin 21 22 RegisterUnit('UDebugLog', @UDebugLog.Register); 23 RegisterUnit('UPrefixMultiplier', @UPrefixMultiplier.Register); 22 24 RegisterUnit('ULastOpenedList', @ULastOpenedList.Register); 23 25 RegisterUnit('UJobProgressView', @UJobProgressView.Register); … … 28 30 RegisterUnit('UScaleDPI', @UScaleDPI.Register); 29 31 RegisterUnit('UTheme', @UTheme.Register); 32 RegisterUnit('UTranslator', @UTranslator.Register); 33 RegisterUnit('UAboutDialog', @UAboutDialog.Register); 30 34 end; 31 35 -
trunk/Packages/Common/Demo/ScaleDPI/ScaleDPI.lpi
r94 r308 17 17 <StringTable ProductVersion=""/> 18 18 </VersionInfo> 19 <MacroValues Count="1">20 <Macro1 Name="LCLWidgetType" Value="customdrawn"/>21 </MacroValues>22 19 <BuildModes Count="1"> 23 20 <Item1 Name="Default" Default="True"/> 24 <SharedMatrixOptions Count="1">25 <Item1 ID="601562014369" Modes="Default" Type="IDEMacro" MacroName="LCLWidgetType" Value="customdrawn"/>26 </SharedMatrixOptions>27 21 </BuildModes> 28 22 <PublishOptions> … … 47 41 <Filename Value="ScaleDPI.lpr"/> 48 42 <IsPartOfProject Value="True"/> 43 <UnitName Value="ScaleDPI"/> 49 44 </Unit0> 50 45 <Unit1> … … 52 47 <IsPartOfProject Value="True"/> 53 48 <ComponentName Value="Form1"/> 54 <HasResources Value="True"/>55 49 <ResourceBaseClass Value="Form"/> 56 50 <UnitName Value="UFormMain"/> … … 60 54 <IsPartOfProject Value="True"/> 61 55 <ComponentName Value="Form2"/> 62 <HasResources Value="True"/>63 56 <ResourceBaseClass Value="Form"/> 64 57 <UnitName Value="UFormTest"/> -
trunk/Packages/Common/Demo/ScaleDPI/UFormTest.lfm
r94 r308 1 1 object Form2: TForm2 2 Left = 10 092 Left = 1062 3 3 Height = 754 4 Top = 3 514 Top = 360 5 5 Width = 1043 6 6 Caption = 'Form2' … … 50 50 ClientHeight = 453 51 51 ClientWidth = 690 52 object ListView1: TListView 53 Left = 0 54 Height = 390 55 Top = 0 56 Width = 690 57 Align = alTop 58 Columns = < 59 item 60 Caption = 'Column' 61 end 62 item 63 Caption = 'Column' 64 end 65 item 66 Caption = 'Column' 67 end 68 item 69 Caption = 'Column' 70 end 71 item 72 Caption = 'Column' 73 Width = 473 74 end> 75 TabOrder = 0 76 ViewStyle = vsReport 77 end 52 78 object Button1: TButton 53 79 Left = 592 … … 57 83 Anchors = [akRight, akBottom] 58 84 Caption = 'Ok' 59 TabOrder = 085 TabOrder = 1 60 86 end 61 87 object Button2: TButton … … 66 92 Anchors = [akRight, akBottom] 67 93 Caption = 'Cancel' 68 TabOrder = 194 TabOrder = 2 69 95 end 70 96 end … … 4442 4468 TabOrder = 3 4443 4469 end 4470 object StatusBar1: TStatusBar 4471 Left = 0 4472 Height = 29 4473 Top = 696 4474 Width = 1043 4475 Panels = < 4476 item 4477 Text = 'Panel1' 4478 Width = 150 4479 end 4480 item 4481 Text = 'Panel2' 4482 Width = 150 4483 end 4484 item 4485 Text = 'Panel3' 4486 Width = 250 4487 end> 4488 SimplePanel = False 4489 end 4490 object Calendar1: TCalendar 4491 Left = 744 4492 Height = 254 4493 Top = 48 4494 Width = 220 4495 DateTime = 41977 4496 TabOrder = 5 4497 end 4444 4498 object ImageList1: TImageList 4445 4499 left = 736 … … 4553 4607 object MenuItem3: TMenuItem 4554 4608 Caption = 'New Item3' 4555 Bitmap.Data = {4556 36040000424D36040000000000003600000028000000100000001000000001004557 2000000000000004000064000000640000000000000000000000986B37FF976A4558 36FF966935FF966734FF956633FF946532FF946531FF936430FF92622FFF92614559 2EFF91602DFF90602CFF905F2BFF8F5D2AFF8E5C29FF8D5B28FF996C38FFF8F74560 F6FFF8F7F5FFF7F6F5FFF6F6F4FFF6F5F3FFF5F5F3FFF5F4F2FFF4F3F1FFF4F34561 F1FFF3F2F0FFF3F2EFFFF2F1EFFFF2F0EEFFF1F0EDFF8E5D29FF996D3AFFF9F84562 F7FF959594FF878787FF9B9A9AFFF7F6F4FFF6F5F3FFF6F5F3FFF5F4F2FFF4F34563 F1FFF4F3F1FFF3F2F0FFF3F2EFFFF2F1EFFFF2F1EEFF8F5E2AFF9A6E3BFFF9F94564 F8FF7C7C7CFFC4C4C4FF878787FFF7F6F5FF7A7A7AFF787878FF747474FF71714565 70FF6D6D6CFF696968FF656565FF616161FFF2F1EFFF905F2BFF9B6F3CFFFAF94566 F8FFBEBEBDFF929292FFBCBCBBFFF8F7F6FFF7F7F5FFF7F6F4FFF6F5F4FFF6F54567 F3FFF5F4F2FFF5F4F2FFF4F3F1FFF4F2F0FFF3F2F0FF91602DFF9C703DFFFAFA4568 F9FFFAF9F9FFF9F9F8FFF9F8F7FFF8F8F7FFF8F7F6FFF7F7F5FFF7F6F5FFF6F54569 F4FFF6F5F3FFF5F4F3FFF5F4F2FFF4F3F1FFF4F3F0FF92612EFF9D723EFFFBFB4570 FAFF9F9F9EFF7F7F7FFFAEAEADFFF9F8F7FFF8F8F7FFF8F7F6FFF7F7F5FFF7F64571 F5FFF6F6F4FFF6F5F3FFF5F4F3FFF5F4F2FFF4F3F1FF92622FFF9D7340FFFCFB4572 FBFF818181FFC4C4C4FF8F8F8FFFFAF9F8FF7B7B7AFF797979FF757574FF72714573 71FF6D6D6DFF696969FF666665FF626261FFF5F4F2FF936430FF9E7441FFFCFC4574 FCFFB5B5B5FF848484FFBEBDBDFFFAFAF9FFFAF9F8FFF9F9F7FFF9F8F7FFF8F84575 F6FFF8F7F5FFF7F6F5FFF7F6F4FFF6F5F3FFF6F5F3FF946531FF9F7542FFFDFD4576 FCFFFCFCFCFFFCFCFBFFFBFBFAFFFBFAFAFFFAFAF9FFFAF9F8FFF9F9F8FFF9F84577 F7FFF8F8F6FFF8F7F6FFF7F6F5FFF7F6F4FFF6F5F4FF956633FFA07643FFFEFD4578 FDFF8C8C8CFF525252FFA4A4A4FFFBFBFAFFFBFBFAFFFAFAF9FFFAF9F8FFF9F94579 F8FFF9F8F7FFF8F8F6FFF8F7F6FFF7F7F5FFF7F6F4FF966734FFA17844FFFEFE4580 FEFF5F5F5FFF949494FF535353FFFCFCFBFF7B7B7BFF797979FF757575FF72724581 72FF6E6E6EFF6A6A69FF666666FF626262FFF7F7F5FF966935FFA17946FFFFFF4582 FFFF878787FF5D5D5DFFA0A0A0FFFDFCFCFFFCFCFBFFFCFBFBFFFBFBFAFFFBFA4583 F9FFFAFAF9FFFAF9F8FFF9F8F7FFF8F8F7FFF8F7F6FF976A36FFA27A47FFFFFF4584 FFFFFFFFFFFFFEFEFEFFFEFEFEFFFDFDFDFFFDFDFCFFFCFCFBFFFCFBFBFFFBFB4585 FAFFFBFAF9FFFAFAF9FFFAF9F8FFF9F9F7FFF9F8F7FF986B37FFA37B48FFBEA24586 7FFFBEA17EFFBDA17DFFBDA07CFFBD9F7CFFBC9F7BFFBB9E7AFFBB9D7AFFBB9D4587 79FFBA9C78FFB99B78FFB99A77FFB89A76FFB89975FF996C39FFA37B48FFA37B4588 48FFA27A47FFA27946FFA17845FFA07744FFA07643FF9F7542FF9E7441FF9E734589 40FF9D723FFF9C713EFF9C703DFF9B6F3CFF9A6E3BFF9A6D3AFF4590 }4591 4609 ImageIndex = 0 4592 4610 OnClick = MenuItem3Click … … 4594 4612 object MenuItem8: TMenuItem 4595 4613 Caption = 'New Item8' 4596 Bitmap.Data = {4597 36040000424D36040000000000003600000028000000100000001000000001004598 2000000000000004000064000000640000000000000000000000FF00FF00FF004599 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004600 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00634A4601 31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A4602 31FF634A31FF634A31FF634A31FF634A31FFFF00FF00FF00FF00C6ADA5FFFFEF4603 E7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDE4604 D6FFFFDED6FFFFDED6FFFFDED6FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFEF4605 E7FFD69484FFE7A584FFF7A584FFF79C73FFF79C73FFE78C63FFE78463FFE7844606 52FFE78442FFE77B42FFE78452FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74607 F7FFC69473FFFFC6A5FFF7B594FFF7A584FFF79C73FFF79C73FFE78C63FFE7844608 63FFD67B52FFD67352FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74609 F7FFC69473FFFFCEB5FFFFEFE7FFFFE7D6FFFFDED6FFFFDED6FFFFDED6FFFFD64610 C6FFFFD6C6FFD67B52FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74611 F7FFC69473FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A584FFF7A584FFF79C4612 73FFE78C63FFE78463FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74613 F7FFC69473FFFFD6C6FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDED6FFFFDE4614 D6FFFFDED6FFE78C63FFE77342FFFFE7D6FF634A31FFFF00FF00C6ADA5FFFFF74615 F7FFC69473FFFFD6C6FFFFD6C6FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A54616 84FFF79C73FFF79C73FFE77342FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4617 FFFFC69473FFFFDED6FFFFEFE7FFFFEFE7FFFFEFE7FFFFC6A5FFFFC6A5FFFFB54618 94FFFFB594FFF79C73FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4619 FFFFC69473FFFFDED6FFFFDED6FFFFD6C6FFFFCEB5FFFFCEB5FFFFC6A5FFFFC64620 A5FFFFB594FFFFB584FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4621 FFFFD69C84FFD69484FFC69473FFD68C73FFD68C63FFC68463FFC67B52FFC6734622 42FFC66B42FFC66B42FFD67B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4623 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFFFF7F7FFFFF7F7FFFFF7F7FFFFF74624 F7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FF634A31FFFF00FF00FF00FF00D6B54625 A5FFD6B5A5FFD6B5A5FFD6B5A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFC6AD4626 A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFFF00FF00FF00FF00FF00FF00FF004627 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004628 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004629 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004630 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004631 }4632 4614 ImageIndex = 1 4633 4615 end 4634 4616 object MenuItem9: TMenuItem 4635 4617 Caption = 'New Item9' 4636 Bitmap.Data = {4637 36040000424D36040000000000003600000028000000100000001000000001004638 2000000000000004000064000000640000000000000000000000FF00FF00FF004639 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004640 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00634A4641 31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A4642 31FF634A31FF634A31FF634A31FF634A31FFFF00FF00FF00FF00C6ADA5FFFFEF4643 E7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDE4644 D6FFFFDED6FFFFDED6FFFFDED6FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFEF4645 E7FFD69484FFE7A584FFF7A584FFF79C73FFF79C73FFE78C63FFE78463FFE7844646 52FFE78442FFE77B42FFE78452FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74647 F7FFC69473FFFFC6A5FFF7B594FFF7A584FFF79C73FFF79C73FFE78C63FFE7844648 63FFD67B52FFD67352FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74649 F7FFC69473FFFFCEB5FFFFEFE7FFFFE7D6FFFFDED6FFFFDED6FFFFDED6FFFFD64650 C6FFFFD6C6FFD67B52FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74651 F7FFC69473FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A584FFF7A584FFF79C4652 73FFE78C63FFE78463FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74653 F7FFC69473FFFFD6C6FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDED6FFFFDE4654 D6FFFFDED6FFE78C63FFE77342FFFFE7D6FF634A31FFFF00FF00C6ADA5FFFFF74655 F7FFC69473FFFFD6C6FFFFD6C6FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A54656 84FFF79C73FFF79C73FFE77342FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4657 FFFFC69473FFFFDED6FFFFEFE7FFFFEFE7FFFFEFE7FFFFC6A5FFFFC6A5FFFFB54658 94FFFFB594FFF79C73FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4659 FFFFC69473FFFFDED6FFFFDED6FFFFD6C6FFFFCEB5FFFFCEB5FFFFC6A5FFFFC64660 A5FFFFB594FFFFB584FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4661 FFFFD69C84FFD69484FFC69473FFD68C73FFD68C63FFC68463FFC67B52FFC6734662 42FFC66B42FFC66B42FFD67B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4663 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFFFF7F7FFFFF7F7FFFFF7F7FFFFF74664 F7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FF634A31FFFF00FF00FF00FF00D6B54665 A5FFD6B5A5FFD6B5A5FFD6B5A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFC6AD4666 A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFFF00FF00FF00FF00FF00FF00FF004667 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004668 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004669 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004670 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004671 }4672 4618 ImageIndex = 1 4673 4619 end 4674 4620 object MenuItem10: TMenuItem 4675 4621 Caption = 'New Item10' 4676 Bitmap.Data = {4677 36040000424D36040000000000003600000028000000100000001000000001004678 2000000000000004000064000000640000000000000000000000FFFFFF00FFFF4679 FF00FFFFFF00FFFFFF005049E726342DE374241CE1BF231BE1BF231BE1BF251D4680 E19F3730E464FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF4681 FF00FFFFFF002D26E2912B23E2FF3032E7FF3B48EFFF4356F4FF4152F2FF39444682 EEFF2D2BE5FF2C24E2DF352EE354FFFFFF00FFFFFF00FFFFFF00FFFFFF00231B4683 E20E2B23E3CF2C29E5FF4153F3FF4E6AFAFF4E6AFAFF4E6AFAFF4E6AFAFF4E6A4684 FAFF4D69FAFF3B47EFFF2923E3FF332BE362FFFFFF00FFFFFF00FFFFFF002C244685 E3912A24E5FFE2E6FEFFE6EAFEFFE5E9FEFFE5E9FEFFE5E9FEFFE5E9FEFFE5E94686 FEFFE5E9FEFFE8EBFEFF4051F2FF2820E2FF3730E442FFFFFF00231BE22E2A224687 E3FF3B47EFFF5C76FAFF96A7FCFFA2B1FCFFA3B2FCFF9CACFCFFA5B3FCFFA1B04688 FCFF9EADFCFF778CFBFF4E6AFAFF3134E9FF2B23E2DFFFFFFF00231BE29F271F4689 E3FF4961F7FFCFD7FEFFFBFBFFFFE4E8FEFFDCE2FEFFFBFBFFFFD6DDFEFFECF04690 FEFFFAFAFFFFCDD5FEFF4E6AFAFF3E4DF1FF261FE1FF231BE12E231BE2DF261E4691 E2FF4D68F9FF6981FBFFF3F4FFFF8598FCFF667EFBFFF3F4FFFF4E6AFAFFA8B54692 FDFFDDE2FEFF4E6AFAFF4E6AFAFF4255F3FF231BE1FF231BE17E241CE2FF261F4693 E2FF231BE2FF453EE6FFEFEEFDFF6D68ECFF4841E7FFEFEFFDFF2B23E3FF97934694 F1FFD6D4FAFF231BE2FF231BE1FF231BE1FF231BE1FF231BE17E241CE2FF271F4695 E2FF241CE2FF453FE6FFEFEEFDFF6D68ECFF4841E7FFEFEFFDFF2B23E3FF97934696 F1FFD6D4FAFF231BE2FF231BE2FF231BE2FF231BE2FF231BE27E241CE2CF27204697 E2FF241CE2FF3C35E5FFEFEEFDFF645FEBFF3D36E5FFEFEFFDFF231BE2FF908C4698 F0FFD4D2F9FF231BE2FF231BE2FF231BE2FF241CE2FF231BE27E241CE29F29214699 E3FF241CE2FFEBEAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4700 FFFFFFFFFFFFFFFFFFFF261EE2FF231BE2FF271FE3FF231BE22E241CE22E2C244701 E3FF261EE2FF241CE2FF241CE2FF241CE2FF241CE2FF241CE2FF241CE2FF241C4702 E2FF241CE2FF241CE2FF261EE2FF251DE2FF2B23E3DFFFFFFF00FFFFFF002C244703 E3912A22E3FF332BE4FF9995F1FFF5F4FEFFFBFBFEFFF6F6FEFFF8F8FEFFFCFC4704 FFFFB6B3F5FF433CE6FF241CE2FF2A22E3FF3028E442FFFFFF00FFFFFF00FFFF4705 FF002A22E3BF2A22E3FF2820E2FF635DEAFFCECCF9FFFFFFFFFFE7E6FCFF7C774706 EEFF2D26E3FF271FE2FF2A22E3FF2E27E362FFFFFF00FFFFFF00FFFFFF00FFFF4707 FF00FFFFFF002B23E3812C24E3FF2B23E3FF4C46E8FF8D89F0FF615BEAFF28204708 E3FF2B23E3FF2D25E3DF3129E442FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF4709 FF00FFFFFF00FFFFFF00241CE21E241CE26E241CE2AF241CE2BF241CE2BF241C4710 E29F241CE25EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004711 }4712 4622 ImageIndex = 2 4713 4623 end … … 4717 4627 object MenuItem4: TMenuItem 4718 4628 Caption = 'New Item4' 4719 Bitmap.Data = {4720 36040000424D36040000000000003600000028000000100000001000000001004721 2000000000000004000064000000640000000000000000000000986B37FF976A4722 36FF966935FF966734FF956633FF946532FF946531FF936430FF92622FFF92614723 2EFF91602DFF90602CFF905F2BFF8F5D2AFF8E5C29FF8D5B28FF996C38FFF8F74724 F6FFF8F7F5FFF7F6F5FFF6F6F4FFF6F5F3FFF5F5F3FFF5F4F2FFF4F3F1FFF4F34725 F1FFF3F2F0FFF3F2EFFFF2F1EFFFF2F0EEFFF1F0EDFF8E5D29FF996D3AFFF9F84726 F7FF959594FF878787FF9B9A9AFFF7F6F4FFF6F5F3FFF6F5F3FFF5F4F2FFF4F34727 F1FFF4F3F1FFF3F2F0FFF3F2EFFFF2F1EFFFF2F1EEFF8F5E2AFF9A6E3BFFF9F94728 F8FF7C7C7CFFC4C4C4FF878787FFF7F6F5FF7A7A7AFF787878FF747474FF71714729 70FF6D6D6CFF696968FF656565FF616161FFF2F1EFFF905F2BFF9B6F3CFFFAF94730 F8FFBEBEBDFF929292FFBCBCBBFFF8F7F6FFF7F7F5FFF7F6F4FFF6F5F4FFF6F54731 F3FFF5F4F2FFF5F4F2FFF4F3F1FFF4F2F0FFF3F2F0FF91602DFF9C703DFFFAFA4732 F9FFFAF9F9FFF9F9F8FFF9F8F7FFF8F8F7FFF8F7F6FFF7F7F5FFF7F6F5FFF6F54733 F4FFF6F5F3FFF5F4F3FFF5F4F2FFF4F3F1FFF4F3F0FF92612EFF9D723EFFFBFB4734 FAFF9F9F9EFF7F7F7FFFAEAEADFFF9F8F7FFF8F8F7FFF8F7F6FFF7F7F5FFF7F64735 F5FFF6F6F4FFF6F5F3FFF5F4F3FFF5F4F2FFF4F3F1FF92622FFF9D7340FFFCFB4736 FBFF818181FFC4C4C4FF8F8F8FFFFAF9F8FF7B7B7AFF797979FF757574FF72714737 71FF6D6D6DFF696969FF666665FF626261FFF5F4F2FF936430FF9E7441FFFCFC4738 FCFFB5B5B5FF848484FFBEBDBDFFFAFAF9FFFAF9F8FFF9F9F7FFF9F8F7FFF8F84739 F6FFF8F7F5FFF7F6F5FFF7F6F4FFF6F5F3FFF6F5F3FF946531FF9F7542FFFDFD4740 FCFFFCFCFCFFFCFCFBFFFBFBFAFFFBFAFAFFFAFAF9FFFAF9F8FFF9F9F8FFF9F84741 F7FFF8F8F6FFF8F7F6FFF7F6F5FFF7F6F4FFF6F5F4FF956633FFA07643FFFEFD4742 FDFF8C8C8CFF525252FFA4A4A4FFFBFBFAFFFBFBFAFFFAFAF9FFFAF9F8FFF9F94743 F8FFF9F8F7FFF8F8F6FFF8F7F6FFF7F7F5FFF7F6F4FF966734FFA17844FFFEFE4744 FEFF5F5F5FFF949494FF535353FFFCFCFBFF7B7B7BFF797979FF757575FF72724745 72FF6E6E6EFF6A6A69FF666666FF626262FFF7F7F5FF966935FFA17946FFFFFF4746 FFFF878787FF5D5D5DFFA0A0A0FFFDFCFCFFFCFCFBFFFCFBFBFFFBFBFAFFFBFA4747 F9FFFAFAF9FFFAF9F8FFF9F8F7FFF8F8F7FFF8F7F6FF976A36FFA27A47FFFFFF4748 FFFFFFFFFFFFFEFEFEFFFEFEFEFFFDFDFDFFFDFDFCFFFCFCFBFFFCFBFBFFFBFB4749 FAFFFBFAF9FFFAFAF9FFFAF9F8FFF9F9F7FFF9F8F7FF986B37FFA37B48FFBEA24750 7FFFBEA17EFFBDA17DFFBDA07CFFBD9F7CFFBC9F7BFFBB9E7AFFBB9D7AFFBB9D4751 79FFBA9C78FFB99B78FFB99A77FFB89A76FFB89975FF996C39FFA37B48FFA37B4752 48FFA27A47FFA27946FFA17845FFA07744FFA07643FF9F7542FF9E7441FF9E734753 40FF9D723FFF9C713EFF9C703DFF9B6F3CFF9A6E3BFF9A6D3AFF4754 }4755 4629 ImageIndex = 0 4756 4630 end 4757 4631 object MenuItem5: TMenuItem 4758 4632 Caption = 'New Item5' 4759 Bitmap.Data = {4760 36040000424D36040000000000003600000028000000100000001000000001004761 2000000000000004000064000000640000000000000000000000FF00FF00FF004762 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004763 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00634A4764 31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A4765 31FF634A31FF634A31FF634A31FF634A31FFFF00FF00FF00FF00C6ADA5FFFFEF4766 E7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDE4767 D6FFFFDED6FFFFDED6FFFFDED6FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFEF4768 E7FFD69484FFE7A584FFF7A584FFF79C73FFF79C73FFE78C63FFE78463FFE7844769 52FFE78442FFE77B42FFE78452FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74770 F7FFC69473FFFFC6A5FFF7B594FFF7A584FFF79C73FFF79C73FFE78C63FFE7844771 63FFD67B52FFD67352FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74772 F7FFC69473FFFFCEB5FFFFEFE7FFFFE7D6FFFFDED6FFFFDED6FFFFDED6FFFFD64773 C6FFFFD6C6FFD67B52FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74774 F7FFC69473FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A584FFF7A584FFF79C4775 73FFE78C63FFE78463FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74776 F7FFC69473FFFFD6C6FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDED6FFFFDE4777 D6FFFFDED6FFE78C63FFE77342FFFFE7D6FF634A31FFFF00FF00C6ADA5FFFFF74778 F7FFC69473FFFFD6C6FFFFD6C6FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A54779 84FFF79C73FFF79C73FFE77342FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4780 FFFFC69473FFFFDED6FFFFEFE7FFFFEFE7FFFFEFE7FFFFC6A5FFFFC6A5FFFFB54781 94FFFFB594FFF79C73FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4782 FFFFC69473FFFFDED6FFFFDED6FFFFD6C6FFFFCEB5FFFFCEB5FFFFC6A5FFFFC64783 A5FFFFB594FFFFB584FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4784 FFFFD69C84FFD69484FFC69473FFD68C73FFD68C63FFC68463FFC67B52FFC6734785 42FFC66B42FFC66B42FFD67B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4786 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFFFF7F7FFFFF7F7FFFFF7F7FFFFF74787 F7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FF634A31FFFF00FF00FF00FF00D6B54788 A5FFD6B5A5FFD6B5A5FFD6B5A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFC6AD4789 A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFFF00FF00FF00FF00FF00FF00FF004790 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004791 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004792 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004793 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004794 }4795 4633 ImageIndex = 1 4796 4634 end 4797 4635 object MenuItem6: TMenuItem 4798 4636 Caption = 'New Item6' 4799 Bitmap.Data = {4800 36040000424D36040000000000003600000028000000100000001000000001004801 2000000000000004000064000000640000000000000000000000986B37FF976A4802 36FF966935FF966734FF956633FF946532FF946531FF936430FF92622FFF92614803 2EFF91602DFF90602CFF905F2BFF8F5D2AFF8E5C29FF8D5B28FF996C38FFF8F74804 F6FFF8F7F5FFF7F6F5FFF6F6F4FFF6F5F3FFF5F5F3FFF5F4F2FFF4F3F1FFF4F34805 F1FFF3F2F0FFF3F2EFFFF2F1EFFFF2F0EEFFF1F0EDFF8E5D29FF996D3AFFF9F84806 F7FF959594FF878787FF9B9A9AFFF7F6F4FFF6F5F3FFF6F5F3FFF5F4F2FFF4F34807 F1FFF4F3F1FFF3F2F0FFF3F2EFFFF2F1EFFFF2F1EEFF8F5E2AFF9A6E3BFFF9F94808 F8FF7C7C7CFFC4C4C4FF878787FFF7F6F5FF7A7A7AFF787878FF747474FF71714809 70FF6D6D6CFF696968FF656565FF616161FFF2F1EFFF905F2BFF9B6F3CFFFAF94810 F8FFBEBEBDFF929292FFBCBCBBFFF8F7F6FFF7F7F5FFF7F6F4FFF6F5F4FFF6F54811 F3FFF5F4F2FFF5F4F2FFF4F3F1FFF4F2F0FFF3F2F0FF91602DFF9C703DFFFAFA4812 F9FFFAF9F9FFF9F9F8FFF9F8F7FFF8F8F7FFF8F7F6FFF7F7F5FFF7F6F5FFF6F54813 F4FFF6F5F3FFF5F4F3FFF5F4F2FFF4F3F1FFF4F3F0FF92612EFF9D723EFFFBFB4814 FAFF9F9F9EFF7F7F7FFFAEAEADFFF9F8F7FFF8F8F7FFF8F7F6FFF7F7F5FFF7F64815 F5FFF6F6F4FFF6F5F3FFF5F4F3FFF5F4F2FFF4F3F1FF92622FFF9D7340FFFCFB4816 FBFF818181FFC4C4C4FF8F8F8FFFFAF9F8FF7B7B7AFF797979FF757574FF72714817 71FF6D6D6DFF696969FF666665FF626261FFF5F4F2FF936430FF9E7441FFFCFC4818 FCFFB5B5B5FF848484FFBEBDBDFFFAFAF9FFFAF9F8FFF9F9F7FFF9F8F7FFF8F84819 F6FFF8F7F5FFF7F6F5FFF7F6F4FFF6F5F3FFF6F5F3FF946531FF9F7542FFFDFD4820 FCFFFCFCFCFFFCFCFBFFFBFBFAFFFBFAFAFFFAFAF9FFFAF9F8FFF9F9F8FFF9F84821 F7FFF8F8F6FFF8F7F6FFF7F6F5FFF7F6F4FFF6F5F4FF956633FFA07643FFFEFD4822 FDFF8C8C8CFF525252FFA4A4A4FFFBFBFAFFFBFBFAFFFAFAF9FFFAF9F8FFF9F94823 F8FFF9F8F7FFF8F8F6FFF8F7F6FFF7F7F5FFF7F6F4FF966734FFA17844FFFEFE4824 FEFF5F5F5FFF949494FF535353FFFCFCFBFF7B7B7BFF797979FF757575FF72724825 72FF6E6E6EFF6A6A69FF666666FF626262FFF7F7F5FF966935FFA17946FFFFFF4826 FFFF878787FF5D5D5DFFA0A0A0FFFDFCFCFFFCFCFBFFFCFBFBFFFBFBFAFFFBFA4827 F9FFFAFAF9FFFAF9F8FFF9F8F7FFF8F8F7FFF8F7F6FF976A36FFA27A47FFFFFF4828 FFFFFFFFFFFFFEFEFEFFFEFEFEFFFDFDFDFFFDFDFCFFFCFCFBFFFCFBFBFFFBFB4829 FAFFFBFAF9FFFAFAF9FFFAF9F8FFF9F9F7FFF9F8F7FF986B37FFA37B48FFBEA24830 7FFFBEA17EFFBDA17DFFBDA07CFFBD9F7CFFBC9F7BFFBB9E7AFFBB9D7AFFBB9D4831 79FFBA9C78FFB99B78FFB99A77FFB89A76FFB89975FF996C39FFA37B48FFA37B4832 48FFA27A47FFA27946FFA17845FFA07744FFA07643FF9F7542FF9E7441FF9E734833 40FF9D723FFF9C713EFF9C703DFF9B6F3CFF9A6E3BFF9A6D3AFF4834 }4835 4637 ImageIndex = 0 4836 4638 end 4837 4639 object MenuItem7: TMenuItem 4838 4640 Caption = 'New Item7' 4839 Bitmap.Data = {4840 36040000424D36040000000000003600000028000000100000001000000001004841 2000000000000004000064000000640000000000000000000000FF00FF00FF004842 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004843 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00634A4844 31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A4845 31FF634A31FF634A31FF634A31FF634A31FFFF00FF00FF00FF00C6ADA5FFFFEF4846 E7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDE4847 D6FFFFDED6FFFFDED6FFFFDED6FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFEF4848 E7FFD69484FFE7A584FFF7A584FFF79C73FFF79C73FFE78C63FFE78463FFE7844849 52FFE78442FFE77B42FFE78452FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74850 F7FFC69473FFFFC6A5FFF7B594FFF7A584FFF79C73FFF79C73FFE78C63FFE7844851 63FFD67B52FFD67352FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74852 F7FFC69473FFFFCEB5FFFFEFE7FFFFE7D6FFFFDED6FFFFDED6FFFFDED6FFFFD64853 C6FFFFD6C6FFD67B52FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74854 F7FFC69473FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A584FFF7A584FFF79C4855 73FFE78C63FFE78463FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF74856 F7FFC69473FFFFD6C6FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDED6FFFFDE4857 D6FFFFDED6FFE78C63FFE77342FFFFE7D6FF634A31FFFF00FF00C6ADA5FFFFF74858 F7FFC69473FFFFD6C6FFFFD6C6FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A54859 84FFF79C73FFF79C73FFE77342FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4860 FFFFC69473FFFFDED6FFFFEFE7FFFFEFE7FFFFEFE7FFFFC6A5FFFFC6A5FFFFB54861 94FFFFB594FFF79C73FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4862 FFFFC69473FFFFDED6FFFFDED6FFFFD6C6FFFFCEB5FFFFCEB5FFFFC6A5FFFFC64863 A5FFFFB594FFFFB584FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4864 FFFFD69C84FFD69484FFC69473FFD68C73FFD68C63FFC68463FFC67B52FFC6734865 42FFC66B42FFC66B42FFD67B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF4866 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFFFF7F7FFFFF7F7FFFFF7F7FFFFF74867 F7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FF634A31FFFF00FF00FF00FF00D6B54868 A5FFD6B5A5FFD6B5A5FFD6B5A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFC6AD4869 A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFFF00FF00FF00FF00FF00FF00FF004870 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004871 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004872 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004873 FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF004874 }4875 4641 ImageIndex = 1 4876 4642 end … … 4880 4646 object MenuItem12: TMenuItem 4881 4647 Caption = 'New Item12' 4882 Bitmap.Data = {4883 36040000424D36040000000000003600000028000000100000001000000001004884 2000000000000004000064000000640000000000000000000000FFFFFF00FFFF4885 FF00FFFFFF00FFFFFF005049E726342DE374241CE1BF231BE1BF231BE1BF251D4886 E19F3730E464FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF4887 FF00FFFFFF002D26E2912B23E2FF3032E7FF3B48EFFF4356F4FF4152F2FF39444888 EEFF2D2BE5FF2C24E2DF352EE354FFFFFF00FFFFFF00FFFFFF00FFFFFF00231B4889 E20E2B23E3CF2C29E5FF4153F3FF4E6AFAFF4E6AFAFF4E6AFAFF4E6AFAFF4E6A4890 FAFF4D69FAFF3B47EFFF2923E3FF332BE362FFFFFF00FFFFFF00FFFFFF002C244891 E3912A24E5FFE2E6FEFFE6EAFEFFE5E9FEFFE5E9FEFFE5E9FEFFE5E9FEFFE5E94892 FEFFE5E9FEFFE8EBFEFF4051F2FF2820E2FF3730E442FFFFFF00231BE22E2A224893 E3FF3B47EFFF5C76FAFF96A7FCFFA2B1FCFFA3B2FCFF9CACFCFFA5B3FCFFA1B04894 FCFF9EADFCFF778CFBFF4E6AFAFF3134E9FF2B23E2DFFFFFFF00231BE29F271F4895 E3FF4961F7FFCFD7FEFFFBFBFFFFE4E8FEFFDCE2FEFFFBFBFFFFD6DDFEFFECF04896 FEFFFAFAFFFFCDD5FEFF4E6AFAFF3E4DF1FF261FE1FF231BE12E231BE2DF261E4897 E2FF4D68F9FF6981FBFFF3F4FFFF8598FCFF667EFBFFF3F4FFFF4E6AFAFFA8B54898 FDFFDDE2FEFF4E6AFAFF4E6AFAFF4255F3FF231BE1FF231BE17E241CE2FF261F4899 E2FF231BE2FF453EE6FFEFEEFDFF6D68ECFF4841E7FFEFEFFDFF2B23E3FF97934900 F1FFD6D4FAFF231BE2FF231BE1FF231BE1FF231BE1FF231BE17E241CE2FF271F4901 E2FF241CE2FF453FE6FFEFEEFDFF6D68ECFF4841E7FFEFEFFDFF2B23E3FF97934902 F1FFD6D4FAFF231BE2FF231BE2FF231BE2FF231BE2FF231BE27E241CE2CF27204903 E2FF241CE2FF3C35E5FFEFEEFDFF645FEBFF3D36E5FFEFEFFDFF231BE2FF908C4904 F0FFD4D2F9FF231BE2FF231BE2FF231BE2FF241CE2FF231BE27E241CE29F29214905 E3FF241CE2FFEBEAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4906 FFFFFFFFFFFFFFFFFFFF261EE2FF231BE2FF271FE3FF231BE22E241CE22E2C244907 E3FF261EE2FF241CE2FF241CE2FF241CE2FF241CE2FF241CE2FF241CE2FF241C4908 E2FF241CE2FF241CE2FF261EE2FF251DE2FF2B23E3DFFFFFFF00FFFFFF002C244909 E3912A22E3FF332BE4FF9995F1FFF5F4FEFFFBFBFEFFF6F6FEFFF8F8FEFFFCFC4910 FFFFB6B3F5FF433CE6FF241CE2FF2A22E3FF3028E442FFFFFF00FFFFFF00FFFF4911 FF002A22E3BF2A22E3FF2820E2FF635DEAFFCECCF9FFFFFFFFFFE7E6FCFF7C774912 EEFF2D26E3FF271FE2FF2A22E3FF2E27E362FFFFFF00FFFFFF00FFFFFF00FFFF4913 FF00FFFFFF002B23E3812C24E3FF2B23E3FF4C46E8FF8D89F0FF615BEAFF28204914 E3FF2B23E3FF2D25E3DF3129E442FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF4915 FF00FFFFFF00FFFFFF00241CE21E241CE26E241CE2AF241CE2BF241CE2BF241C4916 E29F241CE25EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004917 }4918 4648 ImageIndex = 2 4919 4649 end 4920 4650 object MenuItem13: TMenuItem 4921 4651 Caption = 'New Item13' 4922 Bitmap.Data = {4923 36040000424D36040000000000003600000028000000100000001000000001004924 2000000000000004000064000000640000000000000000000000FFFFFF00FFFF4925 FF00FFFFFF00FFFFFF005049E726342DE374241CE1BF231BE1BF231BE1BF251D4926 E19F3730E464FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF4927 FF00FFFFFF002D26E2912B23E2FF3032E7FF3B48EFFF4356F4FF4152F2FF39444928 EEFF2D2BE5FF2C24E2DF352EE354FFFFFF00FFFFFF00FFFFFF00FFFFFF00231B4929 E20E2B23E3CF2C29E5FF4153F3FF4E6AFAFF4E6AFAFF4E6AFAFF4E6AFAFF4E6A4930 FAFF4D69FAFF3B47EFFF2923E3FF332BE362FFFFFF00FFFFFF00FFFFFF002C244931 E3912A24E5FFE2E6FEFFE6EAFEFFE5E9FEFFE5E9FEFFE5E9FEFFE5E9FEFFE5E94932 FEFFE5E9FEFFE8EBFEFF4051F2FF2820E2FF3730E442FFFFFF00231BE22E2A224933 E3FF3B47EFFF5C76FAFF96A7FCFFA2B1FCFFA3B2FCFF9CACFCFFA5B3FCFFA1B04934 FCFF9EADFCFF778CFBFF4E6AFAFF3134E9FF2B23E2DFFFFFFF00231BE29F271F4935 E3FF4961F7FFCFD7FEFFFBFBFFFFE4E8FEFFDCE2FEFFFBFBFFFFD6DDFEFFECF04936 FEFFFAFAFFFFCDD5FEFF4E6AFAFF3E4DF1FF261FE1FF231BE12E231BE2DF261E4937 E2FF4D68F9FF6981FBFFF3F4FFFF8598FCFF667EFBFFF3F4FFFF4E6AFAFFA8B54938 FDFFDDE2FEFF4E6AFAFF4E6AFAFF4255F3FF231BE1FF231BE17E241CE2FF261F4939 E2FF231BE2FF453EE6FFEFEEFDFF6D68ECFF4841E7FFEFEFFDFF2B23E3FF97934940 F1FFD6D4FAFF231BE2FF231BE1FF231BE1FF231BE1FF231BE17E241CE2FF271F4941 E2FF241CE2FF453FE6FFEFEEFDFF6D68ECFF4841E7FFEFEFFDFF2B23E3FF97934942 F1FFD6D4FAFF231BE2FF231BE2FF231BE2FF231BE2FF231BE27E241CE2CF27204943 E2FF241CE2FF3C35E5FFEFEEFDFF645FEBFF3D36E5FFEFEFFDFF231BE2FF908C4944 F0FFD4D2F9FF231BE2FF231BE2FF231BE2FF241CE2FF231BE27E241CE29F29214945 E3FF241CE2FFEBEAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4946 FFFFFFFFFFFFFFFFFFFF261EE2FF231BE2FF271FE3FF231BE22E241CE22E2C244947 E3FF261EE2FF241CE2FF241CE2FF241CE2FF241CE2FF241CE2FF241CE2FF241C4948 E2FF241CE2FF241CE2FF261EE2FF251DE2FF2B23E3DFFFFFFF00FFFFFF002C244949 E3912A22E3FF332BE4FF9995F1FFF5F4FEFFFBFBFEFFF6F6FEFFF8F8FEFFFCFC4950 FFFFB6B3F5FF433CE6FF241CE2FF2A22E3FF3028E442FFFFFF00FFFFFF00FFFF4951 FF002A22E3BF2A22E3FF2820E2FF635DEAFFCECCF9FFFFFFFFFFE7E6FCFF7C774952 EEFF2D26E3FF271FE2FF2A22E3FF2E27E362FFFFFF00FFFFFF00FFFFFF00FFFF4953 FF00FFFFFF002B23E3812C24E3FF2B23E3FF4C46E8FF8D89F0FF615BEAFF28204954 E3FF2B23E3FF2D25E3DF3129E442FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF4955 FF00FFFFFF00FFFFFF00241CE21E241CE26E241CE2AF241CE2BF241CE2BF241C4956 E29F241CE25EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004957 }4958 4652 ImageIndex = 2 4959 4653 end -
trunk/Packages/Common/Demo/ScaleDPI/UFormTest.pas
r94 r308 16 16 Button1: TButton; 17 17 Button2: TButton; 18 Calendar1: TCalendar; 18 19 CheckBox1: TCheckBox; 19 20 Edit1: TEdit; … … 21 22 ImageList1: TImageList; 22 23 ImageList2: TImageList; 24 ListView1: TListView; 23 25 MainMenu1: TMainMenu; 24 26 Memo1: TMemo; … … 39 41 Panel1: TPanel; 40 42 RadioGroup1: TRadioGroup; 43 StatusBar1: TStatusBar; 41 44 TabSheet1: TTabSheet; 42 45 TabSheet2: TTabSheet; -
trunk/Packages/Common/Languages/UJobProgressView.po
r192 r308 14 14 msgstr "" 15 15 16 #: ujobprogressview.soperations17 msgid "Operations:"18 msgstr ""19 20 16 #: ujobprogressview.spleasewait 21 17 msgid "Please wait..." -
trunk/Packages/Common/UApplicationInfo.pas
r192 r308 6 6 7 7 uses 8 SysUtils, Classes, Forms, URegistry, Controls ;8 SysUtils, Classes, Forms, URegistry, Controls, Graphics, LCLType; 9 9 10 10 type … … 14 14 TApplicationInfo = class(TComponent) 15 15 private 16 FDescription: TCaption; 16 FDescription: TTranslateString; 17 FIcon: TBitmap; 17 18 FIdentification: Byte; 18 19 FLicense: string; … … 33 34 public 34 35 constructor Create(AOwner: TComponent); override; 36 destructor Destroy; override; 35 37 property Version: string read GetVersion; 36 38 function GetRegistryContext: TRegistryContext; … … 47 49 property EmailContact: string read FEmailContact write FEmailContact; 48 50 property AppName: string read FAppName write FAppName; 49 property Description: string read FDescription write FDescription;51 property Description: TTranslateString read FDescription write FDescription; 50 52 property ReleaseDate: TDateTime read FReleaseDate write FReleaseDate; 51 53 property RegistryKey: string read FRegistryKey write FRegistryKey; 52 54 property RegistryRoot: TRegistryRoot read FRegistryRoot write FRegistryRoot; 53 55 property License: string read FLicense write FLicense; 56 property Icon: TBitmap read FIcon write FIcon; 54 57 end; 55 58 … … 74 77 constructor TApplicationInfo.Create(AOwner: TComponent); 75 78 begin 76 inherited Create(AOwner);79 inherited; 77 80 FVersionMajor := 1; 78 81 FIdentification := 1; … … 80 83 FRegistryKey := '\Software\' + FAppName; 81 84 FRegistryRoot := rrKeyCurrentUser; 85 FIcon := TBitmap.Create; 86 end; 87 88 destructor TApplicationInfo.Destroy; 89 begin 90 FreeAndNil(FIcon); 91 inherited; 82 92 end; 83 93 -
trunk/Packages/Common/UCommon.pas
r192 r308 28 28 unfDNSDomainName = 11); 29 29 30 TFilterMethodMethod = function (FileName: string): Boolean of object; 30 TFilterMethod = function (FileName: string): Boolean of object; 31 TFileNameMethod = procedure (FileName: string) of object; 32 31 33 var 32 34 ExceptionHandler: TExceptionEvent; … … 72 74 function MergeArray(A, B: array of string): TArrayOfString; 73 75 function LoadFileToStr(const FileName: TFileName): AnsiString; 76 procedure SaveStringToFile(S, FileName: string); 74 77 procedure SearchFiles(AList: TStrings; Dir: string; 75 FilterMethod: TFilterMethod Method);78 FilterMethod: TFilterMethod = nil; FileNameMethod: TFileNameMethod = nil); 76 79 function GetStringPart(var Text: string; Separator: string): string; 80 function StripTags(const S: string): string; 81 function PosFromIndex(SubStr: string; Text: string; 82 StartIndex: Integer): Integer; 83 function PosFromIndexReverse(SubStr: string; Text: string; 84 StartIndex: Integer): Integer; 85 procedure CopyStringArray(Dest: TStringArray; Source: array of string); 77 86 78 87 … … 102 111 I: Integer; 103 112 begin 113 Result := ''; 104 114 for I := 1 to Length(Source) do begin 105 115 Result := Result + LowerCase(IntToHex(Ord(Source[I]), 2)); … … 523 533 end; 524 534 535 procedure SaveStringToFile(S, FileName: string); 536 var 537 F: TextFile; 538 begin 539 AssignFile(F, FileName); 540 try 541 ReWrite(F); 542 Write(F, S); 543 finally 544 CloseFile(F); 545 end; 546 end; 547 525 548 procedure SearchFiles(AList: TStrings; Dir: string; 526 FilterMethod: TFilterMethod Method);549 FilterMethod: TFilterMethod = nil; FileNameMethod: TFileNameMethod = nil); 527 550 var 528 551 SR: TSearchRec; … … 532 555 try 533 556 repeat 534 if (SR.Name = '.') or (SR.Name = '..') or not FilterMethod(SR.Name) or 535 not FilterMethod(Copy(Dir, 3, Length(Dir)) + SR.Name) then Continue; 557 if (SR.Name = '.') or (SR.Name = '..') or (Assigned(FilterMethod) and (not FilterMethod(SR.Name) or 558 not FilterMethod(Copy(Dir, 3, Length(Dir)) + SR.Name))) then Continue; 559 if Assigned(FileNameMethod) then 560 FileNameMethod(Dir + SR.Name); 536 561 AList.Add(Dir + SR.Name); 537 562 if (SR.Attr and faDirectory) <> 0 then … … 559 584 end; 560 585 586 function StripTags(const S: string): string; 587 var 588 Len: Integer; 589 590 function ReadUntil(const ReadFrom: Integer; const C: Char): Integer; 591 var 592 J: Integer; 593 begin 594 for J := ReadFrom to Len do 595 if (S[j] = C) then 596 begin 597 Result := J; 598 Exit; 599 end; 600 Result := Len + 1; 601 end; 602 603 var 604 I, APos: Integer; 605 begin 606 Len := Length(S); 607 I := 0; 608 Result := ''; 609 while (I <= Len) do begin 610 Inc(I); 611 APos := ReadUntil(I, '<'); 612 Result := Result + Copy(S, I, APos - i); 613 I := ReadUntil(APos + 1, '>'); 614 end; 615 end; 616 617 function PosFromIndex(SubStr: string; Text: string; 618 StartIndex: Integer): Integer; 619 var 620 I, MaxLen: SizeInt; 621 Ptr: PAnsiChar; 622 begin 623 Result := 0; 624 if (StartIndex < 1) or (StartIndex > Length(Text) - Length(SubStr)) then Exit; 625 if Length(SubStr) > 0 then begin 626 MaxLen := Length(Text) - Length(SubStr) + 1; 627 I := StartIndex; 628 Ptr := @Text[StartIndex]; 629 while (I <= MaxLen) do begin 630 if (SubStr[1] = Ptr^) and (CompareByte(Substr[1], Ptr^, Length(SubStr)) = 0) then begin 631 Result := I; 632 Exit; 633 end; 634 Inc(I); 635 Inc(Ptr); 636 end; 637 end; 638 end; 639 640 function PosFromIndexReverse(SubStr: string; Text: string; 641 StartIndex: Integer): Integer; 642 var 643 I: SizeInt; 644 Ptr: PAnsiChar; 645 begin 646 Result := 0; 647 if (StartIndex < 1) or (StartIndex > Length(Text)) then Exit; 648 if Length(SubStr) > 0 then begin 649 I := StartIndex; 650 Ptr := @Text[StartIndex]; 651 while (I > 0) do begin 652 if (SubStr[1] = Ptr^) and (CompareByte(Substr[1], Ptr^, Length(SubStr)) = 0) then begin 653 Result := I; 654 Exit; 655 end; 656 Dec(I); 657 Dec(Ptr); 658 end; 659 end; 660 end; 661 662 procedure CopyStringArray(Dest: TStringArray; Source: array of string); 663 var 664 I: Integer; 665 begin 666 SetLength(Dest, Length(Source)); 667 for I := 0 to Length(Dest) - 1 do 668 Dest[I] := Source[I]; 669 end; 561 670 562 671 -
trunk/Packages/Common/UDebugLog.pas
r192 r308 6 6 7 7 uses 8 Classes, SysUtils, FileUtil, SpecializedList, SyncObjs;8 Classes, SysUtils, FileUtil, fgl, SyncObjs; 9 9 10 10 type … … 29 29 procedure SetMaxCount(const AValue: Integer); 30 30 public 31 Items: T ListObject;31 Items: TFPGObjectList<TDebugLogItem>; 32 32 Lock: TCriticalSection; 33 33 procedure Add(Text: string; Group: string = ''); … … 117 117 begin 118 118 inherited; 119 Items := T ListObject.Create;119 Items := TFPGObjectList<TDebugLogItem>.Create; 120 120 Lock := TCriticalSection.Create; 121 121 MaxCount := 100; -
trunk/Packages/Common/UJobProgressView.lfm
r295 r308 15 15 OnShow = FormShow 16 16 Position = poScreenCenter 17 LCLVersion = '2.0. 0.4'17 LCLVersion = '2.0.2.0' 18 18 object PanelOperationsTitle: TPanel 19 19 Left = 0 … … 241 241 Interval = 100 242 242 OnTimer = TimerUpdateTimer 243 left = 264243 left = 320 244 244 top = 8 245 245 end -
trunk/Packages/Common/UJobProgressView.pas
r192 r308 6 6 7 7 uses 8 LCLType,SysUtils, Variants, Classes, Graphics, Controls, Forms, Syncobjs,8 SysUtils, Variants, Classes, Graphics, Controls, Forms, Syncobjs, 9 9 Dialogs, ComCtrls, StdCtrls, ExtCtrls, Contnrs, UThreading, Math, 10 10 DateUtils; … … 175 175 STotalEstimatedTime = 'Total estimated time: %s'; 176 176 SFinished = 'Finished'; 177 SOperations = 'Operations:';178 177 179 178 procedure Register; … … 199 198 Terminate; 200 199 end; 201 end;202 203 function Scale96ToScreen(const ASize: Integer): Integer;204 begin205 Result := MulDiv(ASize, Screen.PixelsPerInch, 96);206 200 end; 207 201 -
trunk/Packages/Common/ULastOpenedList.pas
r192 r308 30 30 procedure SaveToXMLConfig(XMLConfig: TXMLConfig; Path: string); 31 31 procedure AddItem(FileName: string); 32 function GetFirstFileName: string; 32 33 published 33 34 property MaxCount: Integer read FMaxCount write SetMaxCount; … … 185 186 end; 186 187 188 function TLastOpenedList.GetFirstFileName: string; 189 begin 190 if Items.Count > 0 then Result := Items[0] 191 else Result := ''; 192 end; 193 187 194 end. 188 195 -
trunk/Packages/Common/UListViewSort.pas
r217 r308 1 1 unit UListViewSort; 2 2 3 // Date: 201 0-11-033 // Date: 2019-05-17 4 4 5 5 {$mode delphi} … … 8 8 9 9 uses 10 {$IFDEF Windows}Windows, CommCtrl, {$ENDIF}Classes, Graphics, ComCtrls, SysUtils,11 Controls, DateUtils, Dialogs, SpecializedList, Forms, Grids, StdCtrls, ExtCtrls,12 LclIntf, L Messages, LclType, LResources;10 {$IFDEF Windows}Windows, CommCtrl, LMessages, {$ENDIF}Classes, Graphics, ComCtrls, SysUtils, 11 Controls, DateUtils, Dialogs, fgl, Forms, Grids, StdCtrls, ExtCtrls, 12 LclIntf, LclType, LResources; 13 13 14 14 type … … 52 52 {$ENDIF} 53 53 public 54 List: T ListObject;55 Source: T ListObject;54 List: TFPGObjectList<TObject>; 55 Source: TFPGObjectList<TObject>; 56 56 constructor Create(AOwner: TComponent); override; 57 57 destructor Destroy; override; … … 98 98 end; 99 99 100 { TListViewEx } 101 102 TListViewEx = class(TWinControl) 103 private 104 FFilter: TListViewFilter; 105 FListView: TListView; 106 FListViewSort: TListViewSort; 107 procedure ResizeHanlder; 108 public 109 constructor Create(TheOwner: TComponent); override; 110 destructor Destroy; override; 111 published 112 property ListView: TListView read FListView write FListView; 113 property ListViewSort: TListViewSort read FListViewSort write FListViewSort; 114 property Filter: TListViewFilter read FFilter write FFilter; 115 property Visible; 116 end; 117 100 118 procedure Register; 101 119 … … 105 123 procedure Register; 106 124 begin 107 RegisterComponents('Common', [TListViewSort, TListViewFilter]); 125 RegisterComponents('Common', [TListViewSort, TListViewFilter, TListViewEx]); 126 end; 127 128 { TListViewEx } 129 130 procedure TListViewEx.ResizeHanlder; 131 begin 132 end; 133 134 constructor TListViewEx.Create(TheOwner: TComponent); 135 begin 136 inherited Create(TheOwner); 137 Filter := TListViewFilter.Create(Self); 138 Filter.Parent := Self; 139 Filter.Align := alBottom; 140 ListView := TListView.Create(Self); 141 ListView.Parent := Self; 142 ListView.Align := alClient; 143 ListViewSort := TListViewSort.Create(Self); 144 ListViewSort.ListView := ListView; 145 end; 146 147 destructor TListViewEx.Destroy; 148 begin 149 inherited Destroy; 108 150 end; 109 151 … … 152 194 R := CellRect(I, 0); 153 195 Editor.Left := R.Left + 2; 154 Editor.Width := (R.Right - R.Left)- 4;196 Editor.Width := R.Width - 4; 155 197 end; 156 198 end; … … 277 319 end; 278 320 321 var 322 ListViewSortCompare: TCompareEvent; 323 324 function ListViewCompare(const Item1, Item2: TObject): Integer; 325 begin 326 Result := ListViewSortCompare(Item1, Item2); 327 end; 328 279 329 procedure TListViewSort.Sort(Compare: TCompareEvent); 280 330 begin 331 // TODO: Because TFLGObjectList compare handler is not class method, 332 // it is necessary to use simple function compare handler with local variable 333 ListViewSortCompare := Compare; 281 334 if (List.Count > 0) then 282 List.Sort( Compare);335 List.Sort(ListViewCompare); 283 336 end; 284 337 … … 343 396 begin 344 397 inherited; 345 List := T ListObject.Create;346 List. OwnsObjects := False;398 List := TFPGObjectList<TObject>.Create; 399 List.FreeObjects := False; 347 400 end; 348 401 -
trunk/Packages/Common/UMemory.pas
r192 r308 112 112 procedure TMemory.WriteMemory(Position: Integer; Memory: TMemory); 113 113 begin 114 Move(Memory.FData, PByte( @FData+ Position)^, Memory.Size);114 Move(Memory.FData, PByte(PByte(@FData) + Position)^, Memory.Size); 115 115 end; 116 116 117 117 procedure TMemory.ReadMemory(Position: Integer; Memory: TMemory); 118 118 begin 119 Move(PByte( @FData+ Position)^, Memory.FData, Memory.Size);119 Move(PByte(PByte(@FData) + Position)^, Memory.FData, Memory.Size); 120 120 end; 121 121 -
trunk/Packages/Common/UPersistentForm.pas
r207 r308 3 3 {$mode delphi} 4 4 5 // Date: 20 15-04-185 // Date: 2020-11-26 6 6 7 7 interface 8 8 9 9 uses 10 Classes, SysUtils, Forms, URegistry, LCLIntf, Registry, Controls, ComCtrls; 10 Classes, SysUtils, Forms, URegistry, LCLIntf, Registry, Controls, ComCtrls, 11 ExtCtrls, LCLType; 11 12 12 13 type … … 19 20 FMinVisiblePart: Integer; 20 21 FRegistryContext: TRegistryContext; 21 FirstLoad: Boolean;22 22 procedure LoadControl(Control: TControl); 23 23 procedure SaveControl(Control: TControl); … … 26 26 FormRestoredSize: TRect; 27 27 FormWindowState: TWindowState; 28 FormFullScreen: Boolean; 28 29 Form: TForm; 29 30 procedure LoadFromRegistry(RegistryContext: TRegistryContext); … … 31 32 function CheckEntireVisible(Rect: TRect): TRect; 32 33 function CheckPartVisible(Rect: TRect; Part: Integer): TRect; 33 procedure Load(Form: TForm; DefaultMaximized: Boolean = False); 34 procedure Load(Form: TForm; DefaultMaximized: Boolean = False; 35 DefaultFullScreen: Boolean = False); 34 36 procedure Save(Form: TForm); 35 37 constructor Create(AOwner: TComponent); override; 38 procedure SetFullScreen(State: Boolean); 36 39 property RegistryContext: TRegistryContext read FRegistryContext 37 40 write FRegistryContext; … … 43 46 procedure Register; 44 47 48 45 49 implementation 46 47 50 48 51 procedure Register; … … 72 75 end; 73 76 77 if (Control is TPanel) then begin 78 with Form, TRegistryEx.Create do 79 try 80 RootKey := RegistryContext.RootKey; 81 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name + '\' + Control.Name, True); 82 if (TPanel(Control).Align = alRight) or (TPanel(Control).Align = alLeft) then begin 83 if ValueExists('Width') then 84 TPanel(Control).Width := ReadInteger('Width'); 85 end; 86 if (TPanel(Control).Align = alTop) or (TPanel(Control).Align = alBottom) then begin 87 if ValueExists('Height') then 88 TPanel(Control).Height := ReadInteger('Height'); 89 end; 90 finally 91 Free; 92 end; 93 end; 94 74 95 if Control is TWinControl then begin 75 96 WinControl := TWinControl(Control); … … 96 117 for I := 0 to TListView(Control).Columns.Count - 1 do begin 97 118 WriteInteger('ColWidth' + IntToStr(I), TListView(Control).Columns[I].Width); 119 end; 120 finally 121 Free; 122 end; 123 end; 124 125 if (Control is TPanel) then begin 126 with Form, TRegistryEx.Create do 127 try 128 RootKey := RegistryContext.RootKey; 129 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name + '\' + Control.Name, True); 130 if (TPanel(Control).Align = alRight) or (TPanel(Control).Align = alLeft) then begin 131 WriteInteger('Width', TPanel(Control).Width); 132 end; 133 if (TPanel(Control).Align = alTop) or (TPanel(Control).Align = alBottom) then begin 134 WriteInteger('Height', TPanel(Control).Height); 98 135 end; 99 136 finally … … 120 157 RootKey := RegistryContext.RootKey; 121 158 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name, True); 122 FirstLoad := not ValueExists('WindowState');123 159 // Normal size 124 160 FormNormalSize.Left := ReadIntegerWithDefault('NormalLeft', FormNormalSize.Left); … … 136 172 + FormRestoredSize.Top; 137 173 // Other state 138 FormWindowState := TWindowState(ReadIntegerWithDefault('WindowState', Integer(wsNormal))); 174 FormWindowState := TWindowState(ReadIntegerWithDefault('WindowState', Integer(FormWindowState))); 175 FormFullScreen := ReadBoolWithDefault('FullScreen', FormFullScreen); 139 176 finally 140 177 Free; … … 160 197 // Other state 161 198 WriteInteger('WindowState', Integer(FormWindowState)); 199 WriteBool('FullScreen', FormFullScreen); 162 200 finally 163 201 Free; … … 217 255 end; 218 256 219 procedure TPersistentForm.Load(Form: TForm; DefaultMaximized: Boolean = False); 257 procedure TPersistentForm.Load(Form: TForm; DefaultMaximized: Boolean = False; 258 DefaultFullScreen: Boolean = False); 220 259 begin 221 260 Self.Form := Form; … … 225 264 FormRestoredSize := Bounds((Screen.Width - Form.Width) div 2, 226 265 (Screen.Height - Form.Height) div 2, Form.Width, Form.Height); 266 FormWindowState := Form.WindowState; 267 FormFullScreen := DefaultFullScreen; 227 268 228 269 LoadFromRegistry(RegistryContext); 229 270 230 271 if not EqualRect(FormNormalSize, FormRestoredSize) or 231 (DefaultMaximized and FirstLoad)then begin272 DefaultMaximized then begin 232 273 // Restore to maximized state 233 274 Form.WindowState := wsNormal; … … 244 285 Form.BoundsRect := FormNormalSize; 245 286 end; 287 if FormFullScreen then SetFullScreen(True); 246 288 LoadControl(Form); 247 289 end; … … 251 293 Self.Form := Form; 252 294 FormNormalSize := Bounds(Form.Left, Form.Top, Form.Width, Form.Height); 253 FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth, 254 Form.RestoredHeight); 295 if not FormFullScreen then 296 FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth, 297 Form.RestoredHeight); 255 298 FormWindowState := Form.WindowState; 256 299 SaveToRegistry(RegistryContext); … … 265 308 FMinVisiblePart := 50; 266 309 FRegistryContext.RootKey := HKEY_CURRENT_USER; 267 FirstLoad := False; 310 end; 311 312 procedure TPersistentForm.SetFullScreen(State: Boolean); 313 begin 314 if State then begin 315 FormFullScreen := True; 316 FormNormalSize := Form.BoundsRect; 317 FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth, 318 Form.RestoredHeight); 319 FormWindowState := Form.WindowState; 320 ShowWindow(Form.Handle, SW_SHOWFULLSCREEN); 321 {$IFDEF WINDOWS} 322 Form.BorderStyle := bsNone; 323 {$ENDIF} 324 end else begin 325 FormFullScreen := False; 326 {$IFDEF WINDOWS} 327 Form.BorderStyle := bsSizeable; 328 {$ENDIF} 329 ShowWindow(Form.Handle, SW_SHOWNORMAL); 330 if FormWindowState = wsNormal then begin 331 Form.BoundsRect := FormNormalSize; 332 end else 333 if FormWindowState = wsMaximized then begin 334 Form.BoundsRect := FormRestoredSize; 335 Form.WindowState := wsMaximized; 336 end; 337 end; 268 338 end; 269 339 -
trunk/Packages/Common/UPool.pas
r43 r308 6 6 7 7 uses 8 Classes, SysUtils, syncobjs, SpecializedList, UThreading;8 Classes, SysUtils, syncobjs, fgl, UThreading; 9 9 10 10 type … … 22 22 function NewItemObject: TObject; virtual; 23 23 public 24 Items: T ListObject;25 FreeItems: T ListObject;24 Items: TFPGObjectList<TObject>; 25 FreeItems: TFPGObjectList<TObject>; 26 26 function Acquire: TObject; virtual; 27 27 procedure Release(Item: TObject); virtual; … … 185 185 begin 186 186 inherited; 187 Items := T ListObject.Create;188 FreeItems := T ListObject.Create;189 FreeItems. OwnsObjects := False;187 Items := TFPGObjectList<TObject>.Create; 188 FreeItems := TFPGObjectList<TObject>.Create; 189 FreeItems.FreeObjects := False; 190 190 FReleaseEvent := TEvent.Create(nil, False, False, ''); 191 191 end; -
trunk/Packages/Common/UPrefixMultiplier.pas
r43 r308 21 21 { TPrefixMultiplier } 22 22 23 TPrefixMultiplier = class 23 TPrefixMultiplier = class(TComponent) 24 24 private 25 function TruncateDigits(Value: Double;Digits:Integer=3):Double;25 function TruncateDigits(Value: Double; Digits: Integer = 3): Double; 26 26 public 27 27 function Add(Value: Double; PrefixMultipliers: TPrefixMultiplierDef; … … 72 72 ); 73 73 74 procedure Register; 75 76 74 77 implementation 78 79 procedure Register; 80 begin 81 RegisterComponents('Common', [TPrefixMultiplier]); 82 end; 75 83 76 84 { TPrefixMultiplier } … … 92 100 end; 93 101 94 function TPrefixMultiplier.Add(Value: Double;PrefixMultipliers:TPrefixMultiplierDef95 ; UnitText:string;Digits:Integer):string;102 function TPrefixMultiplier.Add(Value: Double; PrefixMultipliers: TPrefixMultiplierDef 103 ; UnitText:string; Digits: Integer): string; 96 104 var 97 105 I: Integer; -
trunk/Packages/Common/UScaleDPI.pas
r145 r308 215 215 I: Integer; 216 216 begin 217 ImgList.BeginUpdate; 217 218 NewWidth := ScaleX(ImgList.Width, FromDPI.X); 218 219 NewHeight := ScaleY(ImgList.Height, FromDPI.Y); … … 226 227 Temp[I] := TBitmap.Create; 227 228 Temp[I].SetSize(NewWidth, NewHeight); 228 {$ifdef linux}229 Temp[I].PixelFormat := pf24bit;230 {$else}231 229 Temp[I].PixelFormat := pf32bit; 232 {$endif}233 230 Temp[I].TransparentColor := TempBmp.TransparentColor; 234 231 //Temp[I].TransparentMode := TempBmp.TransparentMode; … … 252 249 Temp[i].Free; 253 250 end; 251 ImgList.EndUpdate; 254 252 end; 255 253 … … 288 286 WinControl: TWinControl; 289 287 ToolBarControl: TToolBar; 290 OldAnchors: TAnchors; 291 OldAutoSize: Boolean; 292 begin 288 //OldAnchors: TAnchors; 289 //OldAutoSize: Boolean; 290 begin 291 //if not (Control is TCustomPage) then 292 // Resize childs first 293 if Control is TWinControl then begin 294 WinControl := TWinControl(Control); 295 if WinControl.ControlCount > 0 then begin 296 for I := 0 to WinControl.ControlCount - 1 do begin 297 if WinControl.Controls[I] is TControl then begin 298 ScaleControl(WinControl.Controls[I], FromDPI); 299 end; 300 end; 301 end; 302 end; 303 293 304 //if Control is TMemo then Exit; 294 305 //if Control is TForm then … … 320 331 MinWidth := ScaleX(MinWidth, FromDPI.X); 321 332 MinHeight := ScaleY(MinHeight, FromDPI.Y); 322 Width := ScaleX(Width, FromDPI.X); 333 // Workaround to bad band width auto sizing 334 //Width := ScaleX(Width, FromDPI.X); 335 Width := ScaleX(Control.Width + 28, FromDPI.X); 323 336 //Control.Invalidate; 324 337 end; 338 // Workaround for bad autosizing of coolbar 339 if AutoSize then begin 340 AutoSize := False; 341 Height := ScaleY(Height, FromDPI.Y); 342 AutoSize := True; 343 end; 325 344 EndUpdate; 326 345 end; … … 334 353 end; 335 354 336 //if not (Control is TCustomPage) then337 if Control is TWinControl then begin338 WinControl := TWinControl(Control);339 if WinControl.ControlCount > 0 then begin340 for I := 0 to WinControl.ControlCount - 1 do begin341 if WinControl.Controls[I] is TControl then begin342 ScaleControl(WinControl.Controls[I], FromDPI);343 end;344 end;345 end;346 end;347 355 //if Control is TForm then 348 356 // Control.EnableAutoSizing; -
trunk/Packages/Common/UTheme.pas
r192 r308 158 158 ApplyTheme(TPageControl(Component).Pages[I]); 159 159 end; 160 161 if Control is TCoolBar then begin 162 (Control as TCoolBar).Themed := False; 163 end; 160 164 end; 161 165 end; -
trunk/Packages/Common/UXMLUtils.pas
r192 r308 7 7 uses 8 8 {$IFDEF WINDOWS}Windows,{$ENDIF} 9 Classes, SysUtils, DateUtils, DOM ;9 Classes, SysUtils, DateUtils, DOM, xmlread; 10 10 11 11 function XMLTimeToDateTime(XMLDateTime: string): TDateTime; … … 21 21 function ReadString(Node: TDOMNode; Name: string; DefaultValue: string): string; 22 22 function ReadDateTime(Node: TDOMNode; Name: string; DefaultValue: TDateTime): TDateTime; 23 procedure ReadXMLFileParser(out Doc: TXMLDocument; FileName: string); 23 24 24 25 25 26 implementation 27 28 procedure ReadXMLFileParser(out Doc: TXMLDocument; FileName: string); 29 var 30 Parser: TDOMParser; 31 Src: TXMLInputSource; 32 InFile: TFileStream; 33 begin 34 try 35 InFile := TFileStream.Create(FileName, fmOpenRead); 36 Src := TXMLInputSource.Create(InFile); 37 Parser := TDOMParser.Create; 38 Parser.Options.PreserveWhitespace := True; 39 Parser.Parse(Src, Doc); 40 finally 41 Src.Free; 42 Parser.Free; 43 InFile.Free; 44 end; 45 end; 26 46 27 47 function GetTimeZoneBias: Integer;
Note:
See TracChangeset
for help on using the changeset viewer.