Jelajahi Sumber

Merge branch 'dpiaware-comp' into is-6

Martijn Laan 6 tahun lalu
induk
melakukan
555095e52e

+ 610 - 411
Projects/CompForm.dfm

@@ -14,7 +14,7 @@ object CompileForm: TCompileForm
   Menu = MainMenu1
   Menu = MainMenu1
   OldCreateOrder = True
   OldCreateOrder = True
   Position = poDefault
   Position = poDefault
-  Scaled = False
+  OnAfterMonitorDpiChanged = FormAfterMonitorDpiChanged
   OnCloseQuery = FormCloseQuery
   OnCloseQuery = FormCloseQuery
   OnKeyDown = FormKeyDown
   OnKeyDown = FormKeyDown
   OnResize = FormResize
   OnResize = FormResize
@@ -151,7 +151,7 @@ object CompileForm: TCompileForm
     Margins.Left = 7
     Margins.Left = 7
     Margins.Top = 4
     Margins.Top = 4
     Margins.Bottom = 0
     Margins.Bottom = 0
-    Images = ImageList1
+    Images = ToolBarVirtualImageList
     ParentShowHint = False
     ParentShowHint = False
     ShowHint = True
     ShowHint = True
     TabOrder = 2
     TabOrder = 2
@@ -647,421 +647,13 @@ object CompileForm: TCompileForm
       OnClick = PListCopyClick
       OnClick = PListCopyClick
     end
     end
   end
   end
-  object ImageList1: TImageList
-    ColorDepth = cd32Bit
-    Left = 280
-    Top = 48
-    Bitmap = {
-      494C01010B003400D40110001000FFFFFFFF2110FFFFFFFFFFFFFFFF424D3600
-      0000000000003600000028000000400000003000000001002000000000000030
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000F6F6F600F6F6F600F6F6F600F6F6F600F6F6F600F6F6F600F6F6F600F6F6
-      F600000000000000000000000000000000000000000000000000000000000000
-      00005E5E5E60F6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF5E5E
-      5E60000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000F6F6F600F6F6
-      F600C9C9C9007A7A7A004242420042424200424242004242420085858500F5F4
-      F500F6F6F600F6F6F600000000000000000000000000000000001F1F1F20C8C8
-      C8CFF1E1BFFFE8BC5DFFE2A119FFE2A119FFE2A119FFE2A119FFE8BC5DFFF1E1
-      BFFFC8C8C8CF1F1F1F2000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      00000000000000000000000000000000000000000000F6F6F600F6F6F6009191
-      91004242420042424200424242004242420042424200424242009A999900F1EF
-      F000F3F2F300F6F6F600F6F6F60000000000000000001F1F1F20E6E6E6EFEBC6
-      79FFE2A119FFE2A119FFE2A119FFE2A119FFE2A119FFE2A119FFE2A119FFE2A1
-      19FFEBC679FFE6E6E6EF1F1F1F20000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      00000000000000000000000000000000000000000000F6F6F600868686004242
-      420042424200424242004242420042424200424242004D4D4D00E6E4E500F1EF
-      F000F1EFF000F3F2F300F6F6F6000000000000000000C8C8C8CFEAC16BFFE2A1
-      19FFE2A119FFE2A119FFE2A119FFFFFFFFFFFFFFFFFFE2A119FFE2A119FFE2A1
-      19FFE2A119FFEBC679FFC8C8C8CF00000000000000000000000000000000F6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000F6F6F600C9C9C900424242004242
-      420042424200424242004242420042424200424242009A999900F1EFF000F1EF
-      F000E6E4E5006E6D6E00C9C9C900F6F6F6005E5E5E60F1E1BFFFE2A119FFE2A1
-      19FFE2A119FFE2A119FFE2A119FFFFFFFFFFFFFFFFFFE2A119FFE2A119FFE2A1
-      19FFE2A119FFE2A119FFF1E1BFFF5E5E5E60000000000000000000000000F6F6
-      F6FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24
-      A1FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000F6F6F6007A7A7A00424242004242
-      4200424242004D4D4D00C5C4C500F1EFF000F1EFF000F1EFF000F1EFF000BAB9
-      BA004D4D4D00424242007A7A7A00F6F6F600F6F6F6FFE8BC5DFFE2A119FFE2A1
-      19FFE2A119FFE2A119FFE2A119FFE2A119FFE2A119FFE2A119FFE2A119FFE2A1
-      19FFE2A119FFE2A119FFE8BC5DFFF6F6F6FF000000000000000000000000F6F6
-      F6FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24
-      A1FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000F6F6F60042424200424242004242
-      420042424200C5C4C500D0CFCF007978780079787800D0CFCF00DBD9DA004242
-      42006E6D6E009A999900C5C4C500F6F6F600F6F6F6FFE2A119FFE2A119FFE2A1
-      19FFE2A119FFE2A119FFE2A119FFFFFFFFFFFFFFFFFFE2A119FFE2A119FFE2A1
-      19FFE2A119FFE2A119FFE2A119FFF6F6F6FF000000000000000000000000F6F6
-      F6FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24
-      A1FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000F6F6F60042424200424242004242
-      420042424200F1EFF00084838300E6E4E500E6E4E50079787800F1EFF000F1EF
-      F000F1EFF000F1EFF000F1EFF000F6F6F600F6F6F6FFE2A119FFE2A119FFE2A1
-      19FFE2A119FFE2A119FFE2A119FFFFFFFFFFFFFFFFFFFFFFFFFFF1D08DFFE2A1
-      19FFE2A119FFE2A119FFE2A119FFF6F6F6FF000000000000000000000000F6F6
-      F6FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24
-      A1FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000F6F6F6000D26A100394DB100E7E9
-      F000F1EFF000F1EFF00084838300B1B7D600475AB60079787800F1EFF0004242
-      4200424242004242420042424200F6F6F600F6F6F6FFE2A119FFE2A119FFE2A1
-      19FFE2A119FFE2A119FFE2A119FFF1D08DFFFFFFFFFFFFFFFFFFFFFFFFFFE2A1
-      19FFE2A119FFE2A119FFE2A119FFF6F6F6FF000000000000000000000000F6F6
-      F6FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24
-      A1FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000F6F6F600394DB1000D26A1005667
-      BC0042424200DBD9DA009FA8D6001C33A600B7BACA00D0CFCF00C5C4C5004242
-      4200424242004242420042424200F6F6F600F6F6F6FFE2A119FFE2A119FFE2A1
-      19FFE2A119FFE2A119FFE2A119FFE2A119FFE2A119FFFFFFFFFFFFFFFFFFE2A1
-      19FFE2A119FFE2A119FFE2A119FFF6F6F6FF000000000000000000000000F6F6
-      F6FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24
-      A1FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000F6F6F600E7E9F0006474C1000D26
-      A1006474C100909BD1000D26A100BCC2E100F1EFF000C5C4C5004D4D4D004242
-      420042424200424242007A7A7A00F6F6F600F6F6F6FFE8BC5DFFE2A119FFE2A1
-      19FFE2A119FFFFFFFFFFFFFFFFFFE9B952FFE9B952FFFFFFFFFFFFFFFFFFE2A1
-      19FFE2A119FFE2A119FFE8BC5DFFF6F6F6FF000000000000000000000000F6F6
-      F6FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24
-      A1FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000F6F6F600F6F6F600F6F6F6006474
-      C1000D26A1000D26A100909BD100F6F6F6004242420042424200424242004242
-      42004242420042424200C9C9C900F6F6F6005E5E5E60F1E1BFFFE2A119FFE2A1
-      19FFE2A119FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2A1
-      19FFE2A119FFE2A119FFF1E1BFFF5E5E5E60000000000000000000000000F6F6
-      F6FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24A1FF0B24
-      A1FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      00000000000000000000000000000000000000000000F6F6F600F6F6F6006474
-      C1000D26A1000D26A100828ECC00F6F6F6004242420042424200424242004242
-      42004242420091919100F6F6F6000000000000000000C8C8C8CFEBC679FFE2A1
-      19FFE2A119FFEDC46FFFFDF9F1FFFFFFFFFFFFFFFFFFFDF9F1FFEDC46FFFE2A1
-      19FFE2A119FFEBC679FFC8C8C8CF00000000000000000000000000000000F6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      00000000000000000000000000000000000000000000F6F6F6006474C1000D26
-      A1005667BC009FA8D6001C33A6009FA8D600F6F6F60042424200424242004242
-      420091919100F6F6F600F6F6F60000000000000000001F1F1F20E6E6E6EFEAC1
-      6BFFE2A119FFE2A119FFE2A119FFE2A119FFE2A119FFE2A119FFE2A119FFE2A1
-      19FFEBC679FFE6E6E6EF1F1F1F20000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      00000000000000000000000000000000000000000000F6F6F6000D26A1002A40
-      AC00E7E9F100F6F6F600CACFE600394DB100CACFE600F6F6F6007A7A7A00C9C9
-      C900F6F6F600F6F6F600000000000000000000000000000000001F1F1F20C8C8
-      C8CFF1E1BFFFE8BC5DFFE2A119FFE2A119FFE2A119FFE2A119FFE8BC5DFFF1E1
-      BFFFC8C8C8CF1F1F1F2000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      00000000000000000000000000000000000000000000F6F6F600CACFE600D9DC
-      EB00F6F6F60000000000F6F6F600E7E9F000D9DCEB00F6F6F600F6F6F600F6F6
-      F600000000000000000000000000000000000000000000000000000000000000
-      00005E5E5E60F6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF5E5E
-      5E60000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000F6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF000000000000000000000000F6F6
-      F6FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      00005E5E5E60F6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF5E5E
-      5E6000000000000000000000000000000000F6F6F6FF404040FF404040FF4040
-      40FF404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
-      40FF404040FF404040FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FFF6F6F6FFF6F6F6FF00000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      00000000000000000000000000000000000000000000000000001F1F1F20C8C8
-      C8CFC9C9C9FF787878FF404040FF404040FF404040FF404040FF858585FFF5F4
-      F5FFC8C8C8CF1F1F1F200000000000000000F6F6F6FF404040FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FF569E5AFFD2E2D2FFF6F6F6FFF6F6F6FF0000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000000000001F1F1F20E6E6E6EF9191
-      91FF404040FF404040FF404040FF404040FF404040FF404040FF9A9999FFF1EF
-      F0FFF3F2F3FFE6E6E6EF1F1F1F2000000000F6F6F6FF404040FFF6F6F6FFF6F6
-      F6FFF6F6F6FF404040FF404040FFF6F6F6FFF6F6F6FF404040FF404040FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FF328A36FF3E9142FFADCEAFFFF6F6F6FFF6F6F6FF00000000000000000000
-      000000000000000000000000000000000000000000000000000000000000F6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FF00000000000000000000000000000000C8C8C8CF868686FF4040
-      40FF404040FF404040FF404040FF404040FF404040FF4B4B4BFFE6E4E5FFF1EF
-      F0FFF1EFF0FFF3F2F3FFC8C8C8CF00000000F6F6F6FF404040FFF6F6F6FFF6F6
-      F6FFF6F6F6FF404040FF404040FFF6F6F6FFF6F6F6FF404040FF404040FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FF328A36FF328A36FF328A36FF7BB37DFFD9DBD9EFF6F6F6FF000000000000
-      000000000000000000000000000000000000000000000000000000000000F6F6
-      F6FF9C5100FF9C5100FF9C5100FFF6F6F6FFF6F6F6FF9C5100FF9C5100FF9C51
-      00FFF6F6F6FF0000000000000000000000005E5E5E60C9C9C9FF404040FF4040
-      40FF404040FF404040FF404040FF404040FF404040FF9A9999FFF1EFF0FFF1EF
-      F0FFE6E4E5FF6C6B6CFFC9C9C9FF5E5E5E60F6F6F6FF404040FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FF328A36FF328A36FF328A36FF328A36FF569E5AFFD2E2D2FFF6F6F6FFF6F6
-      F6FF00000000000000000000000000000000000000000000000000000000F6F6
-      F6FF9C5100FF9C5100FF9C5100FFF6F6F6FFF6F6F6FF9C5100FF9C5100FF9C51
-      00FFF6F6F6FF000000000000000000000000F6F6F6FF787878FF404040FF4040
-      40FF404040FF4B4B4BFFC5C4C5FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFBAB9
-      BAFF4B4B4BFF404040FF787878FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF4040
-      40FF404040FFF6F6F6FFF6F6F6FF404040FF404040FFF6F6F6FFF6F6F6FF4040
-      40FF404040FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FF328A36FF328A36FF328A36FF328A36FF328A36FF3E9142FFADCEAFFFF6F6
-      F6FFF6F6F6FF000000000000000000000000000000000000000000000000F6F6
-      F6FF9C5100FF9C5100FF9C5100FFF6F6F6FFF6F6F6FF9C5100FF9C5100FF9C51
-      00FFF6F6F6FF000000000000000000000000F6F6F6FF404040FF404040FF4040
-      40FF404040FFC5C4C5FFD0CFCFFF777676FF777676FFD0CFCFFFDBD9DAFF4040
-      40FF6C6B6CFF9A9999FFC5C4C5FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF4040
-      40FF404040FFF6F6F6FFF6F6F6FF404040FF404040FFF6F6F6FFF6F6F6FF4040
-      40FF404040FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FF328A36FF328A36FF328A36FF328A36FF328A36FF328A36FF328A36FF7BB3
-      7DFFF6F6F6FFF6F6F6FF0000000000000000000000000000000000000000F6F6
-      F6FF9C5100FF9C5100FF9C5100FFF6F6F6FFF6F6F6FF9C5100FF9C5100FF9C51
-      00FFF6F6F6FF000000000000000000000000F6F6F6FF404040FF404040FF4040
-      40FF404040FFF1EFF0FF848383FFE6E4E5FFE6E4E5FF777676FFF1EFF0FFF1EF
-      F0FFF1EFF0FFF1EFF0FFF1EFF0FFF6F6F6FFF6F6F6FF909BD1FFCACFE6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFD9DCEBFFE7E9F1FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FF328A36FF328A36FF328A36FF328A36FF328A36FF328A36FF328A36FF89B9
-      8BFFF6F6F6FFF6F6F6FF0000000000000000000000000000000000000000F6F6
-      F6FF9C5100FF9C5100FF9C5100FFF6F6F6FFF6F6F6FF9C5100FF9C5100FF9C51
-      00FFF6F6F6FF000000000000000000000000F6F6F6FFF1EFF0FFF1EFF0FFF1EF
-      F0FFF1EFF0FFF1EFF0FF848383FFE6E4E5FFE6E4E5FF777676FFF1EFF0FF4040
-      40FF404040FF404040FF404040FFF6F6F6FFF6F6F6FF0B24A1FF1A31A6FFCACF
-      E6FFF6F6F6FFF6F6F6FFBCC2E1FF4558B6FFE7E9F1FF404040FF404040FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FF328A36FF328A36FF328A36FF328A36FF328A36FF3E9142FFB9D4BBFFF6F6
-      F6FFF6F6F6FF000000000000000000000000000000000000000000000000F6F6
-      F6FF9C5100FF9C5100FF9C5100FFF6F6F6FFF6F6F6FF9C5100FF9C5100FF9C51
-      00FFF6F6F6FF000000000000000000000000F6F6F6FFC5C4C5FFA4A3A4FF7776
-      76FF404040FFDBD9DAFFD0CFCFFF848383FF848383FFD0CFCFFFC5C4C5FF4040
-      40FF404040FF404040FF404040FFF6F6F6FFF6F6F6FFBCC2E1FF1A31A6FF0B24
-      A1FF9FA8D6FF9FA8D6FF1A31A6FFD9DCEBFFF6F6F6FF404040FF404040FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FF328A36FF328A36FF328A36FF328A36FF569E5AFFDEE9DEFFF6F6F6FFF6F6
-      F6FF00000000000000000000000000000000000000000000000000000000F6F6
-      F6FF9C5100FF9C5100FF9C5100FFF6F6F6FFF6F6F6FF9C5100FF9C5100FF9C51
-      00FFF6F6F6FF000000000000000000000000F6F6F6FF787878FF404040FF4B4B
-      4BFFBAB9BAFFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFC5C4C5FF4B4B4BFF4040
-      40FF404040FF404040FF787878FFF6F6F6FFF6F6F6FFF6F6F6FFE7E9F1FF4558
-      B6FF0B24A1FF0B24A1FFCACFE6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FF328A36FF328A36FF328A36FF89B98BFFF6F6F6FFF6F6F6FF000000000000
-      000000000000000000000000000000000000000000000000000000000000F6F6
-      F6FF9C5100FF9C5100FF9C5100FFF6F6F6FFF6F6F6FF9C5100FF9C5100FF9C51
-      00FFF6F6F6FF0000000000000000000000005E5E5E60C9C9C9FF6C6B6CFFE6E4
-      E5FFF1EFF0FFF1EFF0FF9A9999FF404040FF404040FF404040FF404040FF4040
-      40FF404040FF404040FFC9C9C9FF5E5E5E60F6F6F6FFF6F6F6FFF6F6F6FF6272
-      C1FF0B24A1FF1A31A6FFCACFE6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF4040
-      40FF404040FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FF328A36FF3E9142FFB9D4BBFFF6F6F6FFF6F6F6FF00000000000000000000
-      000000000000000000000000000000000000000000000000000000000000F6F6
-      F6FF9C5100FF9C5100FF9C5100FFF6F6F6FFF6F6F6FF9C5100FF9C5100FF9C51
-      00FFF6F6F6FF00000000000000000000000000000000C8C8C8CFF3F2F3FFF1EF
-      F0FFF1EFF0FFE6E4E5FF4B4B4BFF404040FF404040FF404040FF404040FF4040
-      40FF404040FF919191FFC8C8C8CF00000000F6F6F6FFF6F6F6FF6272C1FF0B24
-      A1FF909BD1FFBCC2E1FF283EACFFCACFE6FFF6F6F6FFF6F6F6FFF6F6F6FF4040
-      40FF404040FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FF569E5AFFDEE9DEFFF6F6F6FFF6F6F6FF0000000000000000000000000000
-      000000000000000000000000000000000000000000000000000000000000F6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FF000000000000000000000000000000001F1F1F20E6E6E6EFF3F2
-      F3FFF1EFF0FF9A9999FF404040FF404040FF404040FF404040FF404040FF4040
-      40FF919191FFE6E6E6EF1F1F1F2000000000F6F6F6FFF6F6F6FF0B24A1FF5465
-      BCFFF6F6F6FFF6F6F6FFE7E9F1FF5465BCFFD9DCEBFFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FFF6F6F6FFF6F6F6FF00000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      00000000000000000000000000000000000000000000000000001F1F1F20C8C8
-      C8CFF5F4F5FF858585FF404040FF404040FF404040FF404040FF787878FFC9C9
-      C9FFC8C8C8CF1F1F1F200000000000000000F6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF000000000000000000000000F6F6
-      F6FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      00005E5E5E60F6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF5E5E
-      5E60000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000000000000F0F0F10F6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF0000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000F6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF0000000000000000000000000000
-      000000000000F6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FF00000000000000006E6E6E70C8DEECFF78B6
-      DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6
-      DCFF78B6DCFFB6D3E6FF78B6DCFFF6F6F6FF00000000F6F6F600F6F6F600F6F6
-      F600F6F6F600F6F6F600F6F6F600F6F6F600F6F6F600F6F6F600F6F6F600F6F6
-      F600F6F6F600F6F6F600F6F6F60000000000F6F6F6FF404040FF404040FF4040
-      40FF404040FF404040FF404040FF404040FF404040FF404040FF404040FF4040
-      40FF404040FF404040FF404040FFF6F6F6FF0000000000000000000000000000
-      000000000000F6F6F6FF404040FF404040FF404040FF404040FF404040FF4040
-      40FF404040FF404040FFF6F6F6FF0000000000000000D8D8D8DF91C2E1FF78B6
-      DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6
-      DCFF89BDDFFFF1EFF0FF78B6DCFFF6F6F6FF00000000F6F6F6009C5300009C53
-      00009C5300009C5300009C5300009C5300009C5300009C5300009C5300009C53
-      00009C5300009C530000F6F6F60000000000F6F6F6FF404040FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF0000000000000000000000000000
-      000000000000F6F6F6FF404040FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EF
-      F0FFF1EFF0FF404040FFF6F6F6FF000000003F3F3F40DFEAF1FF78B6DCFF78B6
-      DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6
-      DCFFD3E1EBFFF1EFF0FF78B6DCFFF6F6F6FF00000000F6F6F6009C5300009C53
-      00009C5300009C5300009C5300009C5300009C5300009C5300009C5300009C53
-      00009C5300009C530000F6F6F60000000000F6F6F6FF404040FFF6F6F6FFF6F6
-      F6FFF6F6F6FF404040FF404040FFF6F6F6FFF6F6F6FF404040FF404040FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF0000000000000000000000000000
-      000000000000F6F6F6FF404040FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EF
-      F0FFF1EFF0FF404040FFF6F6F6FF000000009B9B9B9FA9CEE6FF78B6DCFF78B6
-      DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF9FC8
-      E2FFF1EFF0FFF1EFF0FF78B6DCFFF6F6F6FF00000000F6F6F6009C5300009C53
-      00009C5300009C5300009C5300009C5300009C5300009C5300009C5300009C53
-      00009C5300009C530000F6F6F60000000000F6F6F6FF404040FFF6F6F6FFF6F6
-      F6FFF6F6F6FF404040FF404040FFF6F6F6FFF6F6F6FF404040FF404040FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF0000000000000000000000000000
-      000000000000F6F6F6FF404040FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EF
-      F0FFF1EFF0FF404040FFF6F6F6FF00000000F6F6F6FF82BADEFF78B6DCFF78B6
-      DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF78B6DCFF81BADDFFE2E8
-      EEFFF1EFF0FFF1EFF0FF78B6DCFFF6F6F6FF00000000F6F6F6009C5300009C53
-      00009C5300009C5300009C5300009C5300009C5300009C5300009C5300009C53
-      00009C5300009C530000F6F6F60000000000F6F6F6FF404040FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF0000000000000000000000000000
-      000000000000F6F6F6FF404040FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EF
-      F0FFF1EFF0FF404040FFF6F6F6FF00000000F6F6F6FFF6F6F6FF81BADDFFF1EF
-      F0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EF
-      F0FFF1EFF0FFF1EFF0FF78B6DCFFF6F6F6FF00000000F6F6F6009C5300009C53
-      00009C5300009C5300009C5300009C5300009C5300009C5300009C5300009C53
-      00009C5300009C530000F6F6F60000000000F6F6F6FF404040FFF6F6F6FF4040
-      40FF404040FFF6F6F6FFF6F6F6FF404040FF404040FFF6F6F6FFF6F6F6FF4040
-      40FF404040FFF6F6F6FF404040FFF6F6F6FF000000000000000000000000F6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EF
-      F0FFF1EFF0FF404040FFF6F6F6FF0000000000000000F6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EF
-      F0FFF1EFF0FFF1EFF0FF78B6DCFFF6F6F6FF00000000F6F6F6009C5300009C53
-      00009C5300009C5300009C5300009C5300009C5300009C5300009C5300009C53
-      00009C5300009C530000F6F6F60000000000F6F6F6FF404040FFF6F6F6FF4040
-      40FF404040FFF6F6F6FFF6F6F6FF404040FF404040FFF6F6F6FFF6F6F6FF4040
-      40FF404040FFF6F6F6FF404040FFF6F6F6FF00000000F6F6F6FFF6F6F6FFF6F6
-      F6FF187BC2FFF6F6F6FFF6F6F6FFF6F6F6FFF1EFF0FFF1EFF0FFF1EFF0FF4040
-      40FF404040FF868686FFE6E6E6EF000000008B8B8B8FE0CDB9FFA25B0DFF9C51
-      00FFF6F6F6FFF6F6F6FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EF
-      F0FFF1EFF0FFF1EFF0FF78B6DCFFF6F6F6FF00000000F6F6F6009C5300009C53
-      00009C5300009C5300009C5300009C5300009C5300009C5300009C5300009C53
-      00009C5300009C530000F6F6F60000000000F6F6F6FF404040FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FF00000000F6F6F6FF187BC2FFF6F6
-      F6FF187BC2FFF6F6F6FF187BC2FFF6F6F6FFF1EFF0FFF1EFF0FFF1EFF0FF4040
-      40FF868686FFE6E6E6EF2F2F2F3000000000F6F6F6FFA25B0DFFBE905AFFEBE2
-      D7FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF1EFF0FFF1EFF0FFF1EFF0FFF1EF
-      F0FFF1EFF0FFF1EFF0FF78B6DCFFF6F6F6FF00000000F6F6F6009C5300009C53
-      00009C530000F1EFF000F1EFF000F1EFF000F1EFF000F1EFF000F1EFF0009C53
-      00009C5300009C530000F6F6F60000000000F6F6F6FF404040FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFD4D4D4FF626262FF626262FFD4D4D4FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FF404040FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF187B
-      C2FF187BC2FF187BC2FFF6F6F6FFF6F6F6FFF6F6F6FF404040FF404040FF8686
-      86FFE6E6E6EF2F2F2F300000000000000000F6F6F6FF9C5100FFE0CDB9FFF6F6
-      F6FFBE905AFF9C5100FFBE905AFFF6F6F6FFF6F6F6FFF1EFF0FFF1EFF0FFF1EF
-      F0FFF1EFF0FFF1EFF0FF78B6DCFFF6F6F6FF00000000F6F6F6009C5300009C53
-      00009C530000F1EFF000F1EFF000F1EFF000F1EFF000F1EFF000F1EFF0009C53
-      00009C5300009C530000F6F6F60000000000F6F6F6FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFB3B3B3FF4B4B4BFF404040FF404040FF4B4B4BFFB3B3B3FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF187BC2FF187BC2FF187B
-      C2FFF6F6F6FF187BC2FF187BC2FF187BC2FFF6F6F6FFF6F6F6FFF6F6F6FFE6E6
-      E6EF2F2F2F30000000000000000000000000F6F6F6FFA25B0DFFBE905AFFEBE2
-      D7FFF6F6F6FFBE905AFF9C5100FFAD702CFFF6F6F6FF78B6DCFF78B6DCFF78B6
-      DCFF78B6DCFF78B6DCFF78B6DCFFF6F6F6FF00000000F6F6F6009C5300009C53
-      00009C530000F1EFF000F1EFF000F1EFF0009C5300009C530000F1EFF0009C53
-      00009C5300009C530000F6F6F60000000000000000000000000000000000F6F6
-      F6FF868686FF404040FF404040FF404040FF404040FF404040FF404040FF8686
-      86FFF6F6F6FF000000000000000000000000F6F6F6FFF6F6F6FFBFD8E9FF187B
-      C2FF187BC2FF187BC2FFBFD8E9FFF6F6F6FFF6F6F6FF00000000000000000000
-      0000000000000000000000000000000000008B8B8B8FDAC3A9FFA25B0DFF9C51
-      00FF9C5100FF9C5100FF9C5100FF9C5100FFCFAF8AFFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF00000000F6F6F6009C5300009C53
-      00009C530000F1EFF000F1EFF000F1EFF0009C5300009C530000F1EFF0009C53
-      00009C530000BE905C00F6F6F60000000000000000000000000000000000F6F6
-      F6FF404040FF404040FF9C9C9CFF404040FF404040FF9C9C9CFF404040FF4040
-      40FFF6F6F6FF00000000000000000000000000000000F6F6F6FF187BC2FFF6F6
-      F6FF187BC2FFF6F6F6FF187BC2FFF6F6F6FF0000000000000000000000000000
-      000000000000000000000000000000000000000000008B8B8B8FF6F6F6FFF6F6
-      F6FFF0ECE7FFAD702CFF9C5100FFBE905AFFE6E6E6EF2F2F2F30000000000000
-      00000000000000000000000000000000000000000000F6F6F6009C5300009C53
-      00009C530000F1EFF000F1EFF000F1EFF0009C5300009C530000F1EFF0009C53
-      0000BE905C00F6F6F600F6F6F60000000000000000000000000000000000F6F6
-      F6FF626262FFD4D4D4FFF6F6F6FF404040FF404040FFF6F6F6FFD4D4D4FF6262
-      62FFF6F6F6FF00000000000000000000000000000000F6F6F6FFF6F6F6FFF6F6
-      F6FF187BC2FFF6F6F6FFF6F6F6FFF6F6F6FF0000000000000000000000000000
-      00000000000000000000000000000000000000000000000000002F2F2F30E6E6
-      E6EFAD702CFF9C5100FFBE905AFFE6E6E6EF2F2F2F3000000000000000000000
-      00000000000000000000000000000000000000000000F6F6F600F6F6F600F6F6
-      F600F6F6F600F6F6F600F6F6F600F6F6F600F6F6F600F6F6F600F6F6F600F6F6
-      F600F6F6F600F6F6F6000000000000000000000000000000000000000000F6F6
-      F6FFF6F6F6FFF6F6F6FFF6F6F6FF404040FF404040FFF6F6F6FFF6F6F6FFF6F6
-      F6FFF6F6F6FF000000000000000000000000000000000000000000000000F6F6
-      F6FFF6F6F6FFF6F6F6FF00000000000000000000000000000000000000000000
-      000000000000000000000000000000000000000000002F2F2F30E6E6E6EFF6F6
-      F6FFF6F6F6FFF6F6F6FFE6E6E6EF2F2F2F300000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      0000000000000000000000000000000000000000000000000000000000000000
-      000000000000000000000000000000000000000000000000000000000000F6F6
-      F6FFF6F6F6FF00000000F6F6F6FF404040FF404040FFF6F6F6FF00000000F6F6
-      F6FFF6F6F6FF000000000000000000000000424D3E000000000000003E000000
-      2800000040000000300000000100010000000000800100000000000000000000
-      000000000000000000000000FFFFFF00F00FF00FFFFF0000C003C003FFFF0000
-      80018001FFFF000080018001E007000000000000E007000000000000E0070000
-      00000000E007000000000000E007000000000000E007000000000000E0070000
-      00000000E007000000000000E007000080018001E007000080018001FFFF0000
-      8003C003FFFF0000840FF00FFFFF00000000E7FFFFFFF00F0000E3FFFFFFC003
-      0000E0FFFFFF80010000E07FE00780010000E03FE00700000000E00FE0070000
-      0000E007E00700000000E003E00700000000E003E00700000000E007E0070000
-      0000E00FE00700000000E03FE00700000000E07FE00780010000E0FFE0078001
-      0000E3FFFFFFC0030000E7FFFFFFF00FFFFF8000FFFF0000F801800080010000
-      F801800080010000F801000080010000F801000080010000F801000080010000
-      F801000080010000E00180008001000080010000800100008001000080010000
-      00030000800100000007000080010000007F00008001000080FF803F80010000
-      80FFC07F80030000E3FF80FFFFFF000000000000000000000000000000000000
-      000000000000}
-  end
   object BuildImageList: TImageList
   object BuildImageList: TImageList
     ColorDepth = cd32Bit
     ColorDepth = cd32Bit
     Height = 17
     Height = 17
     Left = 312
     Left = 312
     Top = 48
     Top = 48
     Bitmap = {
     Bitmap = {
-      494C0101040024002C0010001100FFFFFFFF2110FFFFFFFFFFFFFFFF424D3600
+      494C010104002400040010001100FFFFFFFF2110FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000400000002200000001002000000000000022
       0000000000003600000028000000400000002200000001002000000000000022
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
@@ -1348,4 +940,611 @@ object CompileForm: TCompileForm
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
       00000000000000000000000000000000000000000000}
       00000000000000000000000000000000000000000000}
   end
   end
+  object ToolBarImageCollection: TImageCollection
+    Images = <
+      item
+        Name = 'NewFile'
+        SourceImages = <
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+              61000000D549444154785ED552B10AC2400CCD89CB757276165C1DFC013B7751
+              47BFC4C1B5AEFD094775E97820383BF801FE43EB726BBC142E1CB9E2894E3E08
+              E105DECB234441006B2D7A92659982041011065EE8C5B7FD04C4EC2D3A835028
+              79D2C06F996E0E2CA24E9C904AA1C820DC36DF3E40F200ADAB85BBCF9D6FE045
+              541C5DCC8AA2E8AAAAAA91A317B77406F2FAD7DD18FB7ADB3CB9F23CC7B22C69
+              DE90092788A2328F618CE124C4FBFE80639F8E67E8C36ABD84BAAE416BAD7C02
+              7E9EE881D27F10E3BF0C8682CB637D6F4057FE040A11E117BC0059958E3215E0
+              240F0000000049454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D49484452000000280000002808060000008CFEB8
+              6D000000097048597300000EC400000EC401952B0E1B0000028049444154785E
+              ED98318813411486FF2C298E081AB0509080952082461B31207A04C42660404C
+              9B58A4B00BE92DAC13636511C4DB3622E46A1B0B215708DE29D8A4F1201C6817
+              05438A83F81ECCF0A6989D217BB378453E78C5C2EECC9737BC3733C9AD562B9C
+              6672F08315913800810CD0534609424D8A7D8AE21A03EE702030799B1C003DD1
+              477ADE86E2D3F34BD0DC7D71048D126B2A51CE6A0B818892E48E977F409429C6
+              4846E4E49B66C84C4636B95FFBEFF0F9E56DFCFDF91DC47D38D072D37107DFDE
+              3E0E2E19D9E478329E882764490F2CC7DFF1BB8125258337A0F87DB8078D5F52
+              E412288710E456D1011083B8521FE0C2CD273649AFDC998BD770FDE97BE4B7CE
+              8238A0D80E22A8245B3E49932FAF1F78E568CC394E486E45A45C3EABDC1AC88F
+              70366A079C459EDC054BDD7AF6615D39DDC27E9048D99B4169C22EA439AFFB7E
+              BBDD8649A15040B7DB45A954023157993CB067F03FB0582CD0EFF7319D4E4114
+              D58EF5C85124D9321C0E759892E8F57A984C265A72CCFDD85124E90A850B830B
+              840BC58F2CB749A3D140B55A85A243CBFD4A96389D9CB54FA665341A218E6328
+              06E60E14E50C00C4AE262CC87320495E6A53B2094564399524EE1006DC5AB80D
+              85964C3C2C0C2C72CE26ECDA7196F359F003EB5728CE5DBEC3825E395392D1DF
+              9CBFFA105BC592ABA25DC56317A4AA8955D5ECE88C1CEDBD1139774FD392A670
+              D80CDA243914B15A7E1BDC7079570822E668D42209A00521F6DD2F66B3194B22
+              232483964CDE1339D95B1324B317B464922200E105FD9773B9CC674F844CD908
+              6E0437821BC13CC2C0A7915397C14310954A05A1A8D56A32B6228774C83F62D9
+              50A7D84D9F41D9AFEB2A93A1E0B15A34F6AE79EDDC54F149F807DAD38FB9E3B9
+              F1AA0000000049454E44AE426082}
+          end>
+      end
+      item
+        Name = 'OpenFolder'
+        SourceImages = <
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+              610000016249444154785E9D933D48C35014854F4AB492084DB12248B0E0521C
+              2C4251EBA0581C9C5CC4B11D5C3A39A493A01D5DFC0175B493A238B889A03888
+              052BBA88EE8A1429D641D44A092455EA7D0FABF4CFC47E7086C03DE75E4E7802
+              085DD7FB009C9214FCF2460A499274833F7080F81E0A3153307E0429B28B68E2
+              5261A12CDC32808656015C9394E3B931F8BD6EEC9CDDDB0A1198F9E02AA3D130
+              72BA894A96C201CC8CFB500F91C4CD130115F393BDF07A64B6995F409770F363
+              7201B5E81C8DF300BE3932DC5D660ED377221A04C333348B4A9E2F167F2E804B
+              6AC63699BADA6566E22A611A055895B8B6A78D807A404F6CBFCCC8648548BF30
+              46456AD98D29348248E622886C6A196DFDDAFF03403CA55650FC307831F51044
+              27DCFE69389CAEAA0E365B3C3E58C017E4D327354BDC92D501D8C17CB945E1FD
+              A13C804A4C36B576A449B043FEEEB0F202CEBAAC0EC20E9F460E7AE61C254ACF
+              5901F08A06F8022784888D4D52A99A0000000049454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
+              F40000026149444154785EC5974F48146118C67F3B8C2693B1164B45184944DA
+              610B0ACA0E86D0C13A08D525880E7A910E42DB29482F41059D34D893170DBB74
+              2A102A0F9264D01E0ACA0EB514B95907134DEDCFE8FE69275FDC1D868F586798
+              71FAC1CBCCED79E6799FF99889E0C034CD41A083F519320CA393008800846E42
+              3550C94473EF63263F2F50E662CB5E06BA9A1513811908DF84DA8156E0327006
+              858D32117188F701091C846122E2145F32732447D3249FA491FB4AA8263C9201
+              AEAF1A1ED24BB12700DA6E8D49CC7861727A01EFD0000CAE6AA39776CECD076F
+              6DF1F623F574B735D172603B4EBA0652DC9BF84499837BB6327AED24C5C20AF3
+              AF87C9FFFA861B8C9D87A86B6A07E8D34B8593D86DF1FB891300AEC4B754173D
+              890BE6CC9BB2813A1D907DCB00C893571457F79ECF1588C63B70CBDC8BDB38D1
+              50881A559EC42DCBC20FFA9A68B58CA4205D70AE40C4D496CBCE599E9FA2AA6E
+              1F7ED1808700DDA71A11465E7DE57CFF3326DECDF20FECC2E9B5BB098248E935
+              7CAA1C3436E6F005845C368F1FD40EEC6AED45D00CC31807FA0152374ED3732E
+              2EEB202C74805513574CD34C00F49C8DCB10161A0A8BEF4758994B63152DC240
+              8E624B3D246462C7AF8694C07F462FBF5AB3A9A45C9D6DC50FDB0E5F42DB1475
+              95C0B8A6D750136B24487E7E7CE47A05770136D71F2548F23FA6C97DFFB0BE01
+              F9280016AB6A77201324BF33635885ACAB120EADA5708C20F9935D6279E6A52B
+              0377006A62FB913E0489F9E539C5EC52650386616494328656480D1BA58C2115
+              D236E0B18CFE0BA91A705746FF8554525E54FF8C1A8029C2A3D34EC05946369E
+              8C88CBDAFF02511833E7612B8DE20000000049454E44AE426082}
+          end>
+      end
+      item
+        Name = 'Save'
+        SourceImages = <
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+              61000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
+              00097048597300000EC300000EC301C76FA8640000001874455874536F667477
+              617265007061696E742E6E657420342E312E3564475852000000534944415438
+              4F63F8FFFF3F4518AB2029184C7CFBF6ED3F89783E0310A018C0103C078E3FBC
+              FF08C7C862203A66C23EB821641900C23043C83600848936001923ABA1AD01C4
+              E0510306A501E4E0FFFFFF330000CD4FBEDF094E38090000000049454E44AE42
+              6082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+              F80000000467414D410000B18F0BFC6105000000097048597300000EC200000E
+              C20115284A800000001874455874536F667477617265007061696E742E6E6574
+              20342E312E35644758520000008549444154484B63F8FFFF3F4D3156416A62AC
+              82D4C45805A989E18C6FDFBEFDA7101F006214C34118CE002962089E83823FBC
+              FF8881B1C9F3C72CFCCF1FBBE8FFD3571F1E3100014D2C00F1F58AD6822D41F6
+              09552D0061902540B30ED0CC0210069945B605D8F0A8050431D916908B472D20
+              88472D2088472D2088715A404D0C31F73F0300F885242600285C850000000049
+              454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
+              F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
+              00097048597300001D8700001D87018FE5F1650000001874455874536F667477
+              617265007061696E742E6E657420342E312E35644758520000007A4944415458
+              47EDCEC10980301044D1EDD1AB4559806027B6A45E725DD98321C8E4A6932813
+              F8905D4278E6EE4D834B6670C90C2E99E54B4AC95F6EB1E2B40044195105D830
+              C3F6ED80D5DE5DF338AD104103440841054477041D1095882680E87F805AE88F
+              4880EF029E4A00010410400001FA07B0EA04E07602D104F64FEE456282000000
+              0049454E44AE426082}
+          end>
+      end
+      item
+        Name = 'BuildSolution'
+        SourceImages = <
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+              61000000097048597300000EC300000EC301C76FA8640000009249444154785E
+              B590C1090321104553D2D6E0DD2E2C2427ABB00B0BD98BA5A8D7090F82868964
+              20E2C287BFF3FD4FC6C7E7D77BBF6BADD7DB8B730E099E9C8C33F8A528A1D6DA
+              5301C60CFD048410A494220AC08CCC02CC524A69E56D408C91D2526400BE4A5A
+              3967F1DE8F229ED9EAEC786D158C9D115EE77434C0900150AF6EFCEF01CEAD60
+              DD7C14B0BFC23F9A801DBD004F76BB95EF5A23A00000000049454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+              F8000000097048597300000EC400000EC401952B0E1B0000017A49444154785E
+              DD94BF6AC25014C6BF488D38D94E99A4695FA1A3EE52C8D0A79084465CC43F7B
+              4070EDD010323B7612EA0B282EED0388A075D2DD3F3404D27BA012EBBD041308
+              427FF00D39E7E67C3939274110043865B7DB49A4A3EB6BA640A03FF7886A6520
+              A6C0F4C64C0A3842D3B4834E1FE886CE334518F03C317D32930744F09BFFA0F3
+              FBFD3E9601BADDEEFD76BB1D0378861873B3D98C2DCBBA83986883D168847ABD
+              2ECF66330B02A6D3E90BE5279309121910ABD50A8D460383C100C7F4FB7D349B
+              4DACD76B10710DBE99E68661209BCDC2F77DD8B6CD19509CF2BAAED336CE2140
+              B85A041BD82D80D7C562F1D8EBF5B05C2E714AB15844ABD582AAAAEF000CA6AF
+              7C3ECF1950B10011789E07C771301C0E71A052A9A05AAD2297CB9DF78AC2DDE6
+              916519A669A2D3E9405114B4DB6DD46AB588E261BD0C62502A95E0BA2ECAE532
+              CE258398489204229901FF4B881DE70DD2257D832B08A0AF3671FCF21DF003E7
+              3A8888FFF321271FECE53B0807979E01B59C063F045ABCC2305D1BAF00000000
+              49454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
+              F4000000097048597300000EC400000EC401952B0E1B000001AB49444154785E
+              ED94BD6A02411446CFCA566A481A51085889CF2058A70982E409922206B1B017
+              11ACC562C56E53A4B6B73168676121D8248F904AECFC29377B0B210CBAB3384B
+              40F4C0C0B23373EF9DEF7E331CC2F33CB6DBEDA73FB228F8FF3CCDB853D66725
+              96C43C448CE33C005FFEE6574E4392BF480C89C5116C82B901DEFD404FC05B3C
+              1EFF41004AA5127F190C062412897DE27BC0051ED110231C12E85B4E849E6759
+              BB4F6E5C40ABD562B95C02DC021FE87164ED6AB5A2DD6EB3D96CCC0A582C16D4
+              6A3546A3919893308CC763D9C37C3E47878D1E76BB1DFD7E9FE9744ABD5E2795
+              4A710839B5ACD326D62BA0574365329928A78EA8804AA5826DDBAA1AA8B8AEFB
+              B7DFB2876AB58A7F73CC0A2897CB743A1DD2E93461C9643274BB5DB9AA589645
+              1096BC5EE861BD5EE3380EB3D98C208AC5A2F844DE84683D904C2669369B6A4B
+              54C969341A4AF29005885C32821039D596A892EB50F3C438817C3E4FAFD7A350
+              2888E4F24D2E97E3146C34E85AB25706F8D7027489CD0B50FB391C0EA39C37F0
+              8019D702F41E507B66307FA60A44782BAE263C470F98BBFEFC1510375F9E07D4
+              1E5E9602BFE6F0D79995245EAC0000000049454E44AE426082}
+          end>
+      end
+      item
+        Name = 'BuildSolution_Cancel'
+        SourceImages = <
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000010000000100802000000909168
+              36000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
+              00097048597300000EC200000EC20115284A800000001874455874536F667477
+              617265007061696E742E6E657420342E312E3564475852000000D54944415438
+              4F63F84622806A58A8C6BB2DCA1DC27E7DE7E6465FCB67E74F41B870E0E4E404
+              24A11A802A807ACEF435DDDEBA7699B1CCB515F321E240005407518AA2E1C38B
+              E7074B52807A20DA208210805D0310C035002D810AA1028406A0F17BD2C3804A
+              817A8008E8248807C0468314410054C3C797CF211E002A8548009D0414018A27
+              272763D100340CA81AA802220A01404F03ED84726000AA0188210E40366FD3A6
+              4DF060050A42C4212448039C0F61E062434884068200BB06201BCE4566030184
+              4DB1063C0045039100AA8104F0ED1B00122235A95E45DE590000000049454E44
+              AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+              F8000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
+              00097048597300000EC300000EC301C76FA8640000001874455874536F667477
+              617265007061696E742E6E657420342E312E3564475852000001B44944415448
+              4B63F8FFFF3FC3B76FDFFED30A63587067DBBAFFF7F76E435104C3EF9F3DFD7F
+              7E7ACFFF2F9F3E629547C64E4E4E601AC582A7674FFC5FA8C60BC6F7F66C45D1
+              F0ECDCC9FFABED35FFDF58B318451C844186C130B2188846B1E0DDE387FF5798
+              C9832D5869A5FCFFFD934760F1EBAB16FE5FA22BFAFF647B15DC00644CB40520
+              FCFCE259B825BB5282FE1F6B2C82B3BF7EF90257878C49B20084912D01E1F59E
+              26FF3FBD7E85A28610C66BC1E7776FFFEF88F5865B70BCB914459E188CD3820F
+              2F9EFDDF1AE60C3618140F6B9DF5C06C50EA4256070B129841E818AB056FEFDF
+              F9BFDEC3186CE03243A9FFCF2E9C0626CD27600B41FC97D72EA1184092052F2E
+              9FFFBFCA460D6CF8626DA1FF0F0FEF812BFEFCFEFDFF7DB931D0B8780D378024
+              0B40691C64F8220DFEFFB736ADC2D0F0EDEBD7FF273BAAFFEFCB8901B331E4D1
+              3086059B026CFF2F54E7FB7F65D10C0CC5C8F8EAD239FF2FCE9988550E196358
+              F00EE8F5F74F1F8305BDBDBDB17ADFC7C7E7FF891327FEBFBC7E19451CA61659
+              3D8C0DB7005D125D03A9E230F6C058400D3C782C0089C33031E2C8F2207A0458
+              402E1E180BA88D512CA00DFEF61F003B3D5CB46A87A4640000000049454E44AE
+              426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000020000000200802000000FC18ED
+              A3000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
+              00097048597300000EC300000EC301C76FA8640000001874455874536F667477
+              617265007061696E742E6E657420342E312E3564475852000001724944415448
+              4BED93A14E03410044F901FE008DC0A2700D06C50FA0F903F8019A9C257804C1
+              10440D0214860A0421211812020643E130604E33D9995CA77B7B47687BADE9CB
+              8ADD77CDCCED766FA96899D916FC7C0E1E8F8F30B436BE3F06F787DDB7FEB5D6
+              8D6C06381F2940F4E9EA32C6EDC19E54E0FDE1AED759BBD8DE408D54237F1760
+              942FFB747E72B6BE82811A9A08C611379CC74784D7640112B1C456A2BE2A8C23
+              6E388FFFE4A883136C428F53308EB8E13C2E00DE8171B3BFAB0735308EB8E17C
+              0A05559A0ABE5E9FFF7B44556A0B704FCA50D4602BB8FB6C8AAE10238894E17E
+              5810A597571EAF0F83EFC03F02461029C3BD0A700B198D811ABC3B3DC153C8AB
+              9D2DADC728E051303DF941416213F819978C20348EFBE10E105D974E704438BA
+              97CB9ED6F5240AB22CCBF39CF3C94914B8E29CD010A98054402AE086F3450190
+              0AB8E13C5130399E36EF027A2215900A4819EE170540CA703FEF3F793C3C6DA4
+              60BA30795605EDD1724151FC025677F70C44E6AEFC0000000049454E44AE4260
+              82}
+          end>
+      end
+      item
+        Name = 'Run'
+        SourceImages = <
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+              61000000097048597300000EC300000EC301C76FA8640000009B49444154785E
+              B5933D0A836010443D428E6291C2328587B048918B046BB5CA05CC09428A54E2
+              1D12106B8B3412086CF3FD949B548BDD30820BD33EE6EDB2C97242082FE75C9A
+              F06300FD47628CA7D580635BE8F499D47B7F15911D0DC8EABDE69783F663A7A6
+              44022C4D57991209B000250C004A1800944840F9381B8056B83F6FA6402F7178
+              0FF412ADF2FC9DA93382CA18002A6FFF4CFC3BFF00BB7C2896F8E7156B000000
+              0049454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+              F8000000097048597300000EC400000EC401952B0E1B0000018E49444154785E
+              AD95314BC34018865F45288456323804BA54E9DE76E92242C1AD4E228A74D0F4
+              0F28751111512B569C2C8A8B83B1AE22EAA2088285E2E2D27673D22E858C454B
+              8B53CD0B37046FE8F0E581E3B6EFF92EDF7BB991C160003FFD7EDF01B06F1846
+              0B42587B143A36807AAFD7DBF396091914E8E4AE97CCE78FA75D005F9EC40E5C
+              E07EBB387E39C2C6DDBAD96C371C4F42514628D069B4EB28DCAD61E7713BE6FE
+              B8AF9E842B2614E8BC7DD690AB2CE1BC7696E9FE76791A9ECA140A746E9B379C
+              0F2AEF8ECDF96841900A8877020AFC4160E26C91604810622A0814650482A141
+              48FA8320100C0F829A8FA304C1120E85B975003C042A884FC471B17C89D574FE
+              1EC0A46118DC3106392CCAC5AEF32C1CD890AD710B27F3A7145401A4FE17179D
+              6021B18895B4DD898422FCB597A1100B38C4836C098968B2A13E097722174C4F
+              CD6073768B1276BD078554C0822C4C81D6B558908CA650CC1E5252564F690744
+              286041A683C36CA9AEAB508805BC34C5B912AC887505A0A0752D14F0466A9726
+              C837D977D5E5FC01EEE0BF72725AE3C50000000049454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
+              F4000000097048597300000EC300000EC301C76FA864000000D849444154785E
+              E5D72B0EC2401446E12E81A5201048048BA840B091060D2836D0AEA041A01AF6
+              004983AEC0B5E69A79C80BA619853AC91D4193F15FFE331553FCFA42084FE7DC
+              B230FF1240BF47628CFB6C80F978EF1B11596400A4039230C0AE2E7518070549
+              18607D5AE9F6B2D1FBAB034920603EE7EE089210403A300907C0241C00937000
+              4CC201300907C0241C009370004CC201288939E070AB000026B83E5A90005EC2
+              FEDD5B5FC234F92493C16F08260700303900C0C939004ECE0170720E80937300
+              9C9C03C0E4060F13F3A7D97F3D4EAD26FF0044182C5A7358048C000000004945
+              4E44AE426082}
+          end>
+      end
+      item
+        Name = 'Pause'
+        SourceImages = <
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+              61000000097048597300000EC300000EC301C76FA8640000003549444154785E
+              ED92210A00500843BDA3D7F39CABFF63311844B0886CB0B0175E9AEC0A80D769
+              2910B5A8EFC428A020D8FC89B7F20182EB417C2A7BDDD00000000049454E44AE
+              426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
+              F4000000097048597300000EC300000EC301C76FA8640000003E49444154785E
+              EDD6A10D00200C454176643DE6FC16148E048328C9BDA4AA1527DBCA2625992F
+              E75F40EBE3387B7FB92B040000000000000000F013564D5ADD2A05FC1FEB62D1
+              0000000049454E44AE426082}
+          end>
+      end
+      item
+        Name = 'CD'
+        SourceImages = <
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+              61000000097048597300000EC300000EC301C76FA8640000011949444154785E
+              A5933172833010457D949C859E3BE402A1B6E9A1A724ADB94468D284824A696D
+              B7495AECD88272ED570822C99BC69EF9331AEFFF5F5FCBEE2AFC4DD3F46CAD7D
+              1FC751FE82FFA82DCC58F874231A7BB15214852449E221CF73E9FB5EE0C0BD27
+              1ECEBF67390E27A9EB5744775196A5C0F54C707562F0FDF523699AAA26555509
+              9AF9CD44CB5E328418782934A041BBA239BC8F02B7B66F2D061EBA8F2E4A8406
+              2DF12148B36D64BDDE5094FDEE20C67C3A326738510AB418103904049E043853
+              530DC28266104235206EF4049EC59966D3603868BD2602D74C08C18D34989AD7
+              44F719116AE0466F4648E13EE33C484C986240226F46183A34D1283361FFA658
+              C483B60F8668614F000BC6A285CBF4F03A5F011A4875582BC364E20000000049
+              454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
+              F4000000097048597300000EC300000EC301C76FA8640000026649444154785E
+              C597BD8ED340148579141E619F217D24CA9488D4EC03A45A6951CA452917A563
+              A574A4484536090DA1F56EB9D0024D0A03769272F057DCD12477C6E3B18B8D74
+              A4C8733DE7CCFDF39D174D7F65595EECF7FBAB0A5F0E8783F181356CB095F73A
+              E3783CBEAE0832081291F16E17E297E7A75DAFD766341A997EBF6F7ABDDE0978
+              C6DA6C3633BBDDEEC42BEC95445E11BFAA0873212EFE15E64FFED7DCDE7E80AC
+              11C6E3B12B2467CF14971B50C512628BEF4F3F22C4DA2B9BCDC67A231A1254DA
+              5317427E8ACBB7971024613A9D5A117004638EABEAC8C1FCD31C822E22726F4E
+              902CDAED1ABF7EFE96244C8684032E6FDC499AC16060B65FB7B522AEAFDFB511
+              807038743E489D4F26136B7C73F33E2400818A20A53AA44FD80E27A73F77EDF0
+              CDD064D9834F049E6A2D42BC0037B1BF42C062B108AABEFB7817CB8BA41E0117
+              9C70DBE45BDDAFEA4A8C3588EA84E0AD4602E898361921076731E6444A10CFC4
+              66F979C93AE0BF3CC7C69B7CD8B186ED43F66884570B1068417840C8158988C0
+              C621A37BFAF64C1010EE8690010951C21EDD04501D7502383DA06BE23D01B68D
+              05602CAEA7F140DA2404A049A754022AB26F9278BAC6C3498830C895784ECF5A
+              A8230AAF9421A5C1620CAA3145803D1E84D45F86BA11C52115E19E382C4C7BC5
+              6D446E2B86A02D089B888AC26DC5EEC788312A9D5CE7482D98356468F57D8E25
+              566D3FB7D27842084E46928C0C0D5DBC40C285C871B94DBEBA918CF1A98B08EF
+              405316A51AC98243694711F40745AE5D1F1FCB0947EB9CA0E45CB703F64EBD98
+              9098A9D581689982D5C5A4EDD50C213490D8D50C9B94ABD9F35F4E9FFD7AFE1F
+              D5AA97E65128864D0000000049454E44AE426082}
+          end>
+      end
+      item
+        Name = 'CD_Cancel'
+        SourceImages = <
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+              61000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
+              00097048597300000EC200000EC20115284A800000001874455874536F667477
+              617265007061696E742E6E657420342E312E3564475852000001BA4944415438
+              4F6D92314BC3501485F307FC070E4EFE0127D72E4E591D9C840A4E3A3975145A
+              9C848E75292EC1C5C18282228850878A108BA55A2B88A0552B254935ED787DDF
+              350969EC8553D2FBCE3DF7DCFB9E458C46A3AA811878063B61185E44FF1398DC
+              FD783C5ED5826C40D89F9F919395258852AFD7E5EBA92347F6A2F4DC6B711C47
+              0A8582341A0DC45C23341795FE8549069011B9D9DD96EEF1A1380BB3D23EA84A
+              AD56935C2E97A0542AA9D309119378F03F7A72B9B5A622B150ABD512DBB62704
+              40B95C56275ACC5CCD66530683C184002EB2DDD3601CDD8999F9EEE3E559CED7
+              97B51011C008CC3F0C867255BFFAE7849DB06C2BF87CD765C5C5FD7E5F7CDFD7
+              11C873DE6EDFAB485A009831C4A20BC590B981C00FC4F7029D9F25E24C454D6E
+              AA003F8840CAE7F37A0019CB9EE7E9199C9F9F50F36924025965ECBAEE6DF29F
+              EFC74E57BF373736A552D9538E0AB00816129301DD21643B9E9D9E25CB4C96C8
+              55702569812CE8188BBCBDF6D445728D84B1E2F2C2A61503BA52188B7C0FBFB1
+              FFF790089EA54978BCB06902207611154F3E65221271B196DD0928168B129A9B
+              80F3AF381DCCC5720C51B71C831C67112D0ACBFA058D7E87D3045E6D50000000
+              0049454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
+              F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
+              00097048597300000EC200000EC20115284A800000001874455874536F667477
+              617265007061696E742E6E657420342E312E3564475852000003B74944415458
+              47BD97CD4B545118C6FD0782FE8016AE5AB40A5AB51337AD06DA29ADA2699B06
+              352EA48565B88C5C5A82339B312292140692540A958C64144451A720482B6631
+              3A333ACBD3F91DEF7B3B77EEB91F5678E0D1997BDE739EE7BC5FF74C47DAD16C
+              362F1F1D1D0D692C1C1F1F2B1798C3065B6FD9E987DEA8536348E3AEC6F956AB
+              7553FF2F6B3849635066ADB76DBAA117751DFEFAA1D69F3F35D0A769D99BCECD
+              CDA97C3EAFF6BE56D4E7278FD4B70FEFD4C6C686CA6432068383836A72725255
+              AB557F0D5ED1423A3D8AF8A1174C405CB878CE60F9E13DB349A3DE5007B543B5
+              BABAAAF6CB9FD4ABAE4BEA4DE6AADAFBB2ABB2D9ACEAEEEE0E616464C41652D3
+              42AE7B34D1A35D00E09408D01BA8CD1713AA78E582014238B18B5C8057E6E7E7
+              7D6F248644933C20049C4E0440C633BC618B1A1D1D7592BA303E3EEE8B88F404
+              71D206358C5C22E4335E989E9E7612C5C1125173E604C982812E21553FAC8744
+              80F7F76FAB7ABDAE7A7A7A9C24499070C0E5D19E0C62C30449D3DBDBABB636B7
+              2205207078F8B1932009E4842466201FF40353E7C4B5582CAA6A653B36043BDB
+              3B4E8234A03AE082D390D3B57880B252A964B2DB264408DEA0EE450C36B95CCE
+              499006E205D331753CE87AAA52A938C9A9751A50B37952863CA70F1CFCDC37BD
+              01EC7DDF576363CF9C642ECCCCCC482E0CF9C947690931400827EFEFEF378B06
+              7203AA56AB193BE64A37AEA966A3E98B00E5F25A88CC05FA87276081F89B2FE2
+              6221C71B857C21B09053D67553620E2F9835DA66F6EDAC2FC2E50992AFEF4E9F
+              99C376ADBC6E38812F404E26E494A26CBAB4B86416E36ABEAF7C5C31A121446B
+              2F0BA61D8B086C6CB29DED5D7F1F1B2101106A971848EF8F0204942B3D81B5BC
+              9078E6B28D424880CB280AD95B272F204E0BF86C0BE0F460EAF594F19E403C08
+              1205602CAEA7F1402A1BE05A3BC6C0CE0362DE3EDF8E9080A5C5654326EE752D
+              625E4820C4166136394028A7174FB50381BE0029C3A457AB8052B3C992803D1E
+              B4BD122843FDC734229A834D14073C61C793CF49C26CAF041A91DD8A5D646941
+              D86C517108B46286FE625E46BC285C9BA7859D235168E8EE09179C869C61BF8E
+              D3647014581BD578041E39EE0FDE8C2419B934B8364F0B12CE450CB84B78E4C1
+              0B09C3BE92717D726D9E16F48F10F91FD7BBAF640CDCE219FD9388F6B66C9187
+              5DDF3E241F00E1F8DB9CA0E40CB9E77610B886C50DCF13261C24E669AB03D1F6
+              559CBD124FDE3E8813C9229B208406421773798567CC6123750ED82332E66986
+              1792B3F9711A37E85AFA34FFF9E77947C76F440289A9451D3FC7000000004945
+              4E44AE426082}
+          end>
+      end
+      item
+        Name = 'StatusHelp'
+        SourceImages = <
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+              61000000097048597300000EC400000EC401952B0E1B0000013649444154785E
+              A593314BC35010C72FA18A26625D9CA25010E7A683B866F00B44509C4C3F838B
+              83B3838B9FA11167BB8BD0ACE2605C5C5CDAAA8B2E69D12875D0FBC3F168C27B
+              51F00FC70BB9FB1D77C9FF5954529EE76D3E228EA0944A3862C7713AD3803505
+              36F8E85EBF7EF99D870FBA7A9E14E82D6F96DAEBF3B4B93C93321072A3BE3450
+              F0EDE1CDDBD245FF93AA842647BE9B31D642135B12DDE3F45DC1BB6B2EDDEF79
+              F4B4BF8AC033DE1184E9500B46EDDC1B8CBEBD78A8C2A0420D18B0982042579D
+              762E5F10DA9C30518D81A0FCC156CE1EE9370913D4A84207CD3AC72255C9AEE0
+              0BF0E9DD9874324DA059C93C4102931840232C4C820631CCA191F2814EC2C436
+              BC0D7B6E37E6E88F5296066B0B109E6C2C64486856305939547F412E468B13E9
+              7950C77EDA9D91430D6A85A17F5FE71F5687A4906F82C1B80000000049454E44
+              AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D49484452000000140000001408060000008D891D
+              0D000001C249444154785EAD953D48C35010C7AFA17EB5B44811972A04C4A15B
+              1C5C74B1207470290E8E5AD0C549370787B683834BAD93833AD45528228E423B
+              B97489837670097E8083484CA1A815EAFDC33384471A6AF50FC72BBDBB5FDEBB
+              CBBB04C843CD6653E565832DCDA64A6E9DADCAB61F0A850C92149040C3BC64AD
+              567BB36CBC53D9F8A0BAF9456E258683B4A80EB00D52B42F9067684E06BA6195
+              CBA74F6DABD62086928F00A3DDE908CDC7FBB1E324834D3814378C77A4AD5F59
+              0E6C69224CC7C9113A4D8DC2F0DBFE0F420C6291835CB9667BE777663B5EBA77
+              ECF0D66A77127CEE58E432C33EBA8206A06638A65B6B8908B9E4EB1325CA82A5
+              A00968805FCD562B2FB6751272C160A583EC984337658D9D3CD06F0446667268
+              053B54F16AFC5582A1057D8EEA74BA301BEB1AAC90BF3C6147F54667205ED06E
+              55B8B62875F14CB99AE9BB4303D7A93BE01BDDBCB63C7D82A18354E5BB99D9D1
+              45637AEC3633B094B0C3BCB8E89EC0C7E571C7FCEE3518AC3305238861455CF4
+              5E855C31790C4538F2981A3D409D89F333C66CA0183D49AE837E3013C5D3DC35
+              744C3E266291835CF93D74A0FCB462652146DB5A189DF3EC267C88E1581C73CA
+              CE15FAF74FC03745B6F2FCB46017AD0000000049454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+              F8000000097048597300000EC400000EC401952B0E1B0000022149444154785E
+              BD9631481B511880FF1C17A5174C246011A4101007C960B752BAC4410B5DD2C5
+              4E0E0974156A57675773D0B56006A76669DC32F596226E7608198A70A01DB410
+              4C4C4E3421FAFF3FEFC1BB872FB910F4831F1EE4EEFBDF7BFFBBFF2506430882
+              E0230EF218398C0C84F1313C8CAAE3383FC140CC2026E13E4BCDE8C98A98C833
+              2550E5251C7C01E45F7700E5BF3770FCBF078DAB3EA82CCFDAF0662E0E85A517
+              B090B040E062926D430296D3AC0BEDDE3D7CAB072C8F0027D9799D0041199314
+              9504E199937CD36B85669C4DC7E1FD2B07546A6701D49BBDD08A0E722948C663
+              A195C4943DFFF598BCF42E0D1B8B09788CCA6917B67F3743490ED76641B04A35
+              B180E182F2B6A8F2CFCB332C374089F91901BFBB7BD205D56989A39891055549
+              4E592069DF0DE0E8E29682C6FA331276908B9CE4B6C4391F59D0EF8D0E6CD42E
+              29786C4273E56DF111F151D4D9FBD3E21807CD95B3682972FF0CA8DBC175793B
+              3F0D263457C68668B0BCB2FE928FAC82A887190B22F26931A1CBF93BF8814775
+              1863AD4072DEE953A1491E6905BEEC2D1141718009AE4D72D5E5DBA2E516B071
+              A9C599E844914BC05F725534AC9145FEBA92A2E0B109CD55B5C465E163CB1D96
+              04C549197C540DA8EDDB27B79C0AB7D7ADAC13B516A6BDE7B6AD3A3981B8895C
+              6CB5D4724512BD066D195C6089DEAE052E398D170E0675C5C92F1CFD43133FB8
+              18FC82F7214D2FCB15E93326313DA3CA5D723CEBA5FFE47F5B1E00833D02F5C6
+              0653B50000000049454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
+              F4000000097048597300000EC400000EC401952B0E1B000002A649444154785E
+              CD97BF6B144114C7BF37EC9DE6D43506358A095C6365E136A768E306040B53DC
+              056C25877F40208D85855E616123A4B2920B96167A8D4582904B21FE4873D622
+              041241A284239A4BF4027AEFF10686614C6697E4CE0F2CCCDDCEBCEF9B37F366
+              DF64E049BBDD8E0094005C0310C34D03C022807A3E9F6FC2838C87F024802900
+              1192410ECC741D994DEC80081700D4F46C373A7FF062791BEFBF75F061ADC3BF
+              4DC26C06974E6771F954161385C3F4DB8C4AA5EBC8B29703225E12F141127AD8
+              DC64F104B013F7A223DA91963851878572871C2F49FCF597DF187BB5CEE209A1
+              313C966C902DB2C9B62D32F6CC459C673DFB690BFBC1E4F9018E86503623A1EC
+              35DF4D3CCC294C5F3C8EB9F13358BD3D6A3EF41FBDE33E16648B6D0A35D2722D
+              414DC2EE14BF3094C5FCF8705724A4B6EB3DBDA33ED47639612E470D8232D63D
+              A60D7777E9075C3C289EC0C8D1007B407DB8AF03B62DD91393A6198129093D77
+              707165F810DCF8F7D519656A2A39E1229DE7BE4CBF59C7ADF9357AA89D283B64
+              9211692B395E13A7DAF3CF9B78FBF5173DDCF6C5D22A0572B6F309B71B23CF56
+              B01F8816A726692B396AF978ED059656ACCC0D92941BA30378377196CF015F6C
+              AD00421AF1A76327E162F5E70E7C514849B538887F717FA975B00EC881E39CF9
+              9D85EF985BD9822F81F93DF7DF07E9B3446B6994140C5C4CF4024BAB11480D17
+              5325231F0BEF19A785B4844505A0AE2B985E6069D59554AF4D5A97044E705D20
+              B500B73D31EBC526692B309801A06B384F0742B3EDBBF95843A8EA348494CE0D
+              127F543C8603826DCB041B5496D9E7400540EBFAB91CD7707BF1F8E386D9F6AA
+              0BC9B6AE90FFB3A254901715BD1F9E5C0D396429A1B16C438BBBEE060A16B21F
+              CA7A39166E0EA549511A4363CDB097C9765FAF66FDB89C56ED90DBF4FD7AFE17
+              A24C4FDA1DF2D40E0000000049454E44AE426082}
+          end>
+      end
+      item
+        Name = 'Stop'
+        SourceImages = <
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+              61000000097048597300000EC300000EC301C76FA8640000002C49444154785E
+              EDCC310D00000803C11AC006BE31D9151C34CC854F7E3D9845B2374BA032D447
+              800736C3AB01CBA20074CC59EB6C0000000049454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000018000000180806000000E0773D
+              F8000000097048597300000EC400000EC401952B0E1B0000005049444154785E
+              EDD5BB0D002008455130364CE01A2EE3942EE31A4E4089A58D89F157F94E4973
+              0B126033A3971C4D21F098A7015535DA20223C097439065A914AC59211B80A01
+              1CBB7E5BCE7DF0321168783C0F3D710E021A0000000049454E44AE426082}
+          end
+          item
+            Image.Data = {
+              89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
+              F40000005A49444154785EEDD7B10D80400846E11F43C304AEE1324EE932AEE1
+              04945C7995D5999C9AF726F842480856559AD9A2C90100E0BA29334B0F1611F6
+              A509F48E6DD548FB79BD7B0700000000000000003E70CFFF31013E2300001AD6
+              EE0F4DA1ECDBEF0000000049454E44AE426082}
+          end>
+      end>
+    Left = 272
+    Top = 48
+  end
+  object ToolBarVirtualImageList: TVirtualImageList
+    AutoFill = True
+    DisabledGrayscale = False
+    DisabledSuffix = '_Disabled'
+    Images = <
+      item
+        CollectionIndex = 0
+        CollectionName = 'NewFile'
+        Disabled = False
+        Name = 'NewFile'
+      end
+      item
+        CollectionIndex = 1
+        CollectionName = 'OpenFolder'
+        Disabled = False
+        Name = 'OpenFolder'
+      end
+      item
+        CollectionIndex = 2
+        CollectionName = 'Save'
+        Disabled = False
+        Name = 'Save'
+      end
+      item
+        CollectionIndex = 3
+        CollectionName = 'BuildSolution'
+        Disabled = False
+        Name = 'BuildSolution'
+      end
+      item
+        CollectionIndex = 4
+        CollectionName = 'BuildSolution_Cancel'
+        Disabled = False
+        Name = 'BuildSolution_Cancel'
+      end
+      item
+        CollectionIndex = 5
+        CollectionName = 'Run'
+        Disabled = False
+        Name = 'Run'
+      end
+      item
+        CollectionIndex = 6
+        CollectionName = 'Pause'
+        Disabled = False
+        Name = 'Pause'
+      end
+      item
+        CollectionIndex = 7
+        CollectionName = 'CD'
+        Disabled = False
+        Name = 'CD'
+      end
+      item
+        CollectionIndex = 8
+        CollectionName = 'CD_Cancel'
+        Disabled = False
+        Name = 'CD_Cancel'
+      end
+      item
+        CollectionIndex = 9
+        CollectionName = 'StatusHelp'
+        Disabled = False
+        Name = 'StatusHelp'
+      end
+      item
+        CollectionIndex = 10
+        CollectionName = 'Stop'
+        Disabled = False
+        Name = 'Stop'
+      end>
+    ImageCollection = ToolBarImageCollection
+    Left = 272
+    Top = 80
+  end
 end
 end

+ 56 - 20
Projects/CompForm.pas

@@ -2,7 +2,7 @@ unit CompForm;
 
 
 {
 {
   Inno Setup
   Inno Setup
-  Copyright (C) 1997-2018 Jordan Russell
+  Copyright (C) 1997-2019 Jordan Russell
   Portions by Martijn Laan
   Portions by Martijn Laan
   For conditions of distribution and use, see LICENSE.TXT.
   For conditions of distribution and use, see LICENSE.TXT.
 
 
@@ -25,7 +25,8 @@ uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   UIStateForm, StdCtrls, ExtCtrls, Menus, Buttons, ComCtrls, CommCtrl,
   UIStateForm, StdCtrls, ExtCtrls, Menus, Buttons, ComCtrls, CommCtrl,
   ScintInt, ScintEdit, ScintStylerInnoSetup, NewTabSet,
   ScintInt, ScintEdit, ScintStylerInnoSetup, NewTabSet,
-  DebugStruct, CompInt, UxThemeISX, System.ImageList, Vcl.ImgList, Vcl.ToolWin;
+  DebugStruct, CompInt, UxThemeISX, System.ImageList, ImgList, ToolWin,
+  VirtualImageList, BaseImageCollection, ImageCollection;
 
 
 const
 const
   WM_StartCommandLineCompile = WM_USER + $1000;
   WM_StartCommandLineCompile = WM_USER + $1000;
@@ -152,7 +153,6 @@ type
     FSaveEncoding: TMenuItem;
     FSaveEncoding: TMenuItem;
     FSaveEncodingAuto: TMenuItem;
     FSaveEncodingAuto: TMenuItem;
     FSaveEncodingUTF8: TMenuItem;
     FSaveEncodingUTF8: TMenuItem;
-    ImageList1: TImageList;
     ToolBar: TToolBar;
     ToolBar: TToolBar;
     NewButton: TToolButton;
     NewButton: TToolButton;
     OpenButton: TToolButton;
     OpenButton: TToolButton;
@@ -171,6 +171,8 @@ type
     Bevel1: TBevel;
     Bevel1: TBevel;
     BuildImageList: TImageList;
     BuildImageList: TImageList;
     TerminateButton: TToolButton;
     TerminateButton: TToolButton;
+    ToolBarImageCollection: TImageCollection;
+    ToolBarVirtualImageList: TVirtualImageList;
     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
     procedure FExitClick(Sender: TObject);
     procedure FExitClick(Sender: TObject);
     procedure FOpenClick(Sender: TObject);
     procedure FOpenClick(Sender: TObject);
@@ -249,6 +251,8 @@ type
     procedure FSaveEncodingItemClick(Sender: TObject);
     procedure FSaveEncodingItemClick(Sender: TObject);
     procedure CompilerOutputListDrawItem(Control: TWinControl; Index: Integer;
     procedure CompilerOutputListDrawItem(Control: TWinControl; Index: Integer;
       Rect: TRect; State: TOwnerDrawState);
       Rect: TRect; State: TOwnerDrawState);
+    procedure FormAfterMonitorDpiChanged(Sender: TObject; OldDPI,
+      NewDPI: Integer);
   private
   private
     { Private declarations }
     { Private declarations }
     FCompilerVersion: PCompilerVersionInfo;
     FCompilerVersion: PCompilerVersionInfo;
@@ -337,6 +341,7 @@ type
     function EvaluateVariableEntry(const DebugEntry: PVariableDebugEntry;
     function EvaluateVariableEntry(const DebugEntry: PVariableDebugEntry;
       var Output: String): Integer;
       var Output: String): Integer;
     procedure FindNext;
     procedure FindNext;
+    function FromCurrentPPI(const XY: Integer): Integer;
     procedure Go(AStepMode: TStepMode);
     procedure Go(AStepMode: TStepMode);
     procedure HideError;
     procedure HideError;
     procedure InitializeFindText(Dlg: TFindDialog);
     procedure InitializeFindText(Dlg: TFindDialog);
@@ -374,6 +379,7 @@ type
     procedure ShowOpenDialog(const Examples: Boolean);
     procedure ShowOpenDialog(const Examples: Boolean);
     procedure StatusMessage(const Kind: TStatusMessageKind; const S: String);
     procedure StatusMessage(const Kind: TStatusMessageKind; const S: String);
     procedure SyncEditorOptions;
     procedure SyncEditorOptions;
+    function ToCurrentPPI(const XY: Integer): Integer;
     procedure ToggleBreakPoint(Line: Integer);
     procedure ToggleBreakPoint(Line: Integer);
     procedure UpdateAllLineMarkers;
     procedure UpdateAllLineMarkers;
     procedure UpdateCaption;
     procedure UpdateCaption;
@@ -382,6 +388,7 @@ type
     procedure UpdateEditModePanel;
     procedure UpdateEditModePanel;
     procedure UpdateLineMarkers(const Line: Integer);
     procedure UpdateLineMarkers(const Line: Integer);
     procedure UpdateNewButtons;
     procedure UpdateNewButtons;
+    procedure UpdateOutputListsItemHeightAndDebugTimeWidth;
     procedure UpdateRunMenu;
     procedure UpdateRunMenu;
     procedure UpdateTargetMenu;
     procedure UpdateTargetMenu;
     procedure UpdateThemeData(const Close, Open: Boolean);
     procedure UpdateThemeData(const Close, Open: Boolean);
@@ -492,12 +499,13 @@ begin
   else
   else
 {$ENDIF}
 {$ENDIF}
   begin
   begin
-    Metrics.cbSize := SizeOf(Metrics);  { <- won't work on Delphi 2010? }
+    Metrics.cbSize := SizeOf(Metrics);
     if SystemParametersInfo(SPI_GETNONCLIENTMETRICS, SizeOf(Metrics),
     if SystemParametersInfo(SPI_GETNONCLIENTMETRICS, SizeOf(Metrics),
        @Metrics, 0) then
        @Metrics, 0) then
       FontName := Metrics.lfMessageFont.lfFaceName;
       FontName := Metrics.lfMessageFont.lfFaceName;
     { Only allow fonts that we know will fit the text correctly }
     { Only allow fonts that we know will fit the text correctly }
-    if CompareText(FontName, 'Microsoft Sans Serif') <> 0 then
+    if not SameText(FontName, 'Microsoft Sans Serif') and
+       not SameText(FontName, 'Segoe UI') then
       FontName := 'Tahoma';
       FontName := 'Tahoma';
   end;
   end;
   Form.Font.Name := FontName;
   Form.Font.Name := FontName;
@@ -567,7 +575,6 @@ begin
   Result := NewFileExists(PathExtractPath(NewParamStr(0)) + 'iscrypt.dll');
   Result := NewFileExists(PathExtractPath(NewParamStr(0)) + 'iscrypt.dll');
 end;
 end;
 
 
-
 { TISScintEdit }
 { TISScintEdit }
 
 
 procedure TISScintEdit.CreateWnd;
 procedure TISScintEdit.CreateWnd;
@@ -790,8 +797,9 @@ constructor TCompileForm.Create(AOwner: TComponent);
         WindowState := wsMaximized;
         WindowState := wsMaximized;
       { Note: Don't call UpdateStatusPanelHeight here since it clips to the
       { Note: Don't call UpdateStatusPanelHeight here since it clips to the
         current form height, which hasn't been finalized yet }
         current form height, which hasn't been finalized yet }
-      StatusPanel.Height := Ini.ReadInteger('State', 'StatusPanelHeight',
-        (10 * DebugOutputList.ItemHeight + 4) + TabSet.Height);
+
+      StatusPanel.Height := ToCurrentPPI(Ini.ReadInteger('State', 'StatusPanelHeight',
+        (10 * FromCurrentPPI(DebugOutputList.ItemHeight) + 4) + FromCurrentPPI(TabSet.Height)));
     finally
     finally
       Ini.Free;
       Ini.Free;
     end;
     end;
@@ -853,6 +861,13 @@ begin
     editor's autocompletion list } 
     editor's autocompletion list } 
   SetFakeShortCut(BStopCompile, VK_ESCAPE, []);
   SetFakeShortCut(BStopCompile, VK_ESCAPE, []);
 
 
+{$IFNDEF IS_D103RIO}
+  { TStatusBar needs manual scaling before Delphi 10.3 Rio }
+  StatusBar.Height := ToPPI(StatusBar.Height);
+  for I := 0 to StatusBar.Panels.Count-1 do
+    StatusBar.Panels[I].Width := ToPPI(StatusBar.Panels[I].Width);
+{$ENDIF}
+
   MemoStyler := TInnoSetupStyler.Create(Self);
   MemoStyler := TInnoSetupStyler.Create(Self);
   MemoStyler.IsppInstalled := IsppInstalled;
   MemoStyler.IsppInstalled := IsppInstalled;
 
 
@@ -882,13 +897,7 @@ begin
 
 
   FBreakPoints := TList.Create;
   FBreakPoints := TList.Create;
 
 
-  CompilerOutputList.Canvas.Font.Assign(CompilerOutputList.Font);
-  CompilerOutputList.ItemHeight := CompilerOutputList.Canvas.TextHeight('0');
-
-  DebugOutputList.Canvas.Font.Assign(DebugOutputList.Font);
-  FDebugLogListTimeWidth := DebugOutputList.Canvas.TextWidth(Format(
-    '[00%s00%s00%s000]   ', [{$IFDEF IS_DXE}FormatSettings.{$ENDIF}TimeSeparator, {$IFDEF IS_DXE}FormatSettings.{$ENDIF}TimeSeparator, {$IFDEF IS_DXE}FormatSettings.{$ENDIF}DecimalSeparator]));
-  DebugOutputList.ItemHeight := DebugOutputList.Canvas.TextHeight('0');
+  UpdateOutputListsItemHeightAndDebugTimeWidth;
 
 
   Application.HintShortPause := 0;
   Application.HintShortPause := 0;
   Application.OnException := AppOnException;
   Application.OnException := AppOnException;
@@ -949,7 +958,7 @@ destructor TCompileForm.Destroy;
       Ini.WriteInteger('State', 'WindowRight', WindowPlacement.rcNormalPosition.Right);
       Ini.WriteInteger('State', 'WindowRight', WindowPlacement.rcNormalPosition.Right);
       Ini.WriteInteger('State', 'WindowBottom', WindowPlacement.rcNormalPosition.Bottom);
       Ini.WriteInteger('State', 'WindowBottom', WindowPlacement.rcNormalPosition.Bottom);
       Ini.WriteBool('State', 'WindowMaximized', WindowState = wsMaximized);
       Ini.WriteBool('State', 'WindowMaximized', WindowState = wsMaximized);
-      Ini.WriteInteger('State', 'StatusPanelHeight', StatusPanel.Height);
+      Ini.WriteInteger('State', 'StatusPanelHeight', FromCurrentPPI(StatusPanel.Height));
       
       
       { Zoom state }
       { Zoom state }
       Ini.WriteInteger('Options', 'Zoom', Memo.Zoom);
       Ini.WriteInteger('Options', 'Zoom', Memo.Zoom);
@@ -981,6 +990,13 @@ begin
     MB_OK or MB_ICONSTOP);
     MB_OK or MB_ICONSTOP);
 end;
 end;
 
 
+procedure TCompileForm.FormAfterMonitorDpiChanged(Sender: TObject; OldDPI,
+  NewDPI: Integer);
+begin
+  UpdateOutputListsItemHeightAndDebugTimeWidth;
+  UpdateStatusPanelHeight(StatusPanel.Height);
+end;
+
 procedure TCompileForm.FormCloseQuery(Sender: TObject;
 procedure TCompileForm.FormCloseQuery(Sender: TObject;
   var CanClose: Boolean);
   var CanClose: Boolean);
 begin
 begin
@@ -2418,13 +2434,23 @@ procedure TCompileForm.UpdateStatusPanelHeight(H: Integer);
 var
 var
   MinHeight, MaxHeight: Integer;
   MinHeight, MaxHeight: Integer;
 begin
 begin
-  MinHeight := (3 * DebugOutputList.ItemHeight + 4) + TabSet.Height;
-  MaxHeight := BodyPanel.ClientHeight - 48 - SplitPanel.Height;
+  MinHeight := (3 * DebugOutputList.ItemHeight + ToCurrentPPI(4)) + TabSet.Height;
+  MaxHeight := BodyPanel.ClientHeight - ToCurrentPPI(48) - SplitPanel.Height;
   if H > MaxHeight then H := MaxHeight;
   if H > MaxHeight then H := MaxHeight;
   if H < MinHeight then H := MinHeight;
   if H < MinHeight then H := MinHeight;
   StatusPanel.Height := H;
   StatusPanel.Height := H;
 end;
 end;
 
 
+procedure TCompileForm.UpdateOutputListsItemHeightAndDebugTimeWidth;
+begin
+  CompilerOutputList.Canvas.Font.Assign(CompilerOutputList.Font);
+  CompilerOutputList.ItemHeight := CompilerOutputList.Canvas.TextHeight('0');
+
+  DebugOutputList.Canvas.Font.Assign(DebugOutputList.Font);
+  FDebugLogListTimeWidth := DebugOutputList.Canvas.TextWidth(Format('[00%s00%s00%s000]   ', [FormatSettings.TimeSeparator, FormatSettings.TimeSeparator, FormatSettings.DecimalSeparator]));
+  DebugOutputList.ItemHeight := DebugOutputList.Canvas.TextHeight('0');
+end;
+
 procedure TCompileForm.SplitPanelMouseMove(Sender: TObject;
 procedure TCompileForm.SplitPanelMouseMove(Sender: TObject;
   Shift: TShiftState; X, Y: Integer);
   Shift: TShiftState; X, Y: Integer);
 begin
 begin
@@ -3816,8 +3842,8 @@ begin
     spCompileIcon:
     spCompileIcon:
       if FCompiling then begin
       if FCompiling then begin
         ImageList_Draw(BuildImageList.Handle, FBuildAnimationFrame, StatusBar.Canvas.Handle,
         ImageList_Draw(BuildImageList.Handle, FBuildAnimationFrame, StatusBar.Canvas.Handle,
-          Rect.Left + ((Rect.Right - Rect.Left) - 16) div 2,
-          Rect.Top + ((Rect.Bottom - Rect.Top) - 17) div 2, ILD_NORMAL);
+          Rect.Left + ((Rect.Right - Rect.Left) - BuildImageList.Width) div 2,
+          Rect.Top + ((Rect.Bottom - Rect.Top) - BuildImageList.Height) div 2, ILD_NORMAL);
       end;
       end;
     spCompileProgress:
     spCompileProgress:
       if FCompiling and (FProgressMax > 0) then begin
       if FCompiling and (FProgressMax > 0) then begin
@@ -4195,6 +4221,16 @@ begin
   ToggleBreakPoint(Memo.CaretLine);
   ToggleBreakPoint(Memo.CaretLine);
 end;
 end;
 
 
+function TCompileForm.ToCurrentPPI(const XY: Integer): Integer;
+begin
+  Result := MulDiv(XY, CurrentPPI, 96);
+end;
+
+function TCompileForm.FromCurrentPPI(const XY: Integer): Integer;
+begin
+  Result := MulDiv(XY, 96, CurrentPPI);
+end;
+
 {$IFNDEF UNICODE}
 {$IFNDEF UNICODE}
 var
 var
   Compil32LeadBytes: TLeadByteSet;
   Compil32LeadBytes: TLeadByteSet;

+ 1 - 72
Projects/CompStartup.dfm

@@ -14,6 +14,7 @@ object StartupForm: TStartupForm
   Font.Style = []
   Font.Style = []
   OldCreateOrder = True
   OldCreateOrder = True
   Position = poScreenCenter
   Position = poScreenCenter
+  OnAfterMonitorDpiChanged = FormAfterMonitorDpiChanged
   OnCreate = FormCreate
   OnCreate = FormCreate
   PixelsPerInch = 96
   PixelsPerInch = 96
   TextHeight = 13
   TextHeight = 13
@@ -51,42 +52,6 @@ object StartupForm: TStartupForm
       Width = 16
       Width = 16
       Height = 16
       Height = 16
       AutoSize = True
       AutoSize = True
-      Picture.Data = {
-        07544269746D617036040000424D360400000000000036000000280000001000
-        000010000000010020000000000000040000C40E0000C40E0000000000000000
-        0000000000000000000000000000000000000000000000000000000000000000
-        0000000000000000000000000000000000000000000000000000000000000000
-        00000000000000000000000000000000000000000000F6F6F6FFF6F6F6FFF6F6
-        F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FF0000
-        00000000000000000000000000000000000000000000F6F6F6FF424242FF4242
-        42FF424242FF424242FF424242FF424242FF424242FF424242FFF6F6F6FF0000
-        00000000000000000000000000000000000000000000F6F6F6FF424242FFF1EF
-        F0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FF424242FFF6F6F6FF0000
-        00000000000000000000000000000000000000000000F6F6F6FF424242FFF1EF
-        F0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FF424242FFF6F6F6FF0000
-        00000000000000000000000000000000000000000000F6F6F6FF424242FFF1EF
-        F0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FF424242FFF6F6F6FF0000
-        00000000000000000000000000000000000000000000F6F6F6FF424242FFF1EF
-        F0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FF424242FFF6F6F6FF0000
-        0000000000000000000000000000F6F6F6FFF6F6F6FFF6F6F6FF424242FFF1EF
-        F0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FF424242FFF6F6F6FF0000
-        000000000000F6F6F6FFF6F6F6FFF6F6F6FF1A7DC2FFF6F6F6FFF6F6F6FFF6F6
-        F6FFF1EFF0FFF1EFF0FFF1EFF0FF424242FF424242FF868686FFF6F6F6EF0000
-        000000000000F6F6F6FF1A7DC2FFF6F6F6FF1A7DC2FFF6F6F6FF1A7DC2FFF6F6
-        F6FFF1EFF0FFF1EFF0FFF1EFF0FF424242FF868686FFF6F6F6EFF6F6F6300000
-        0000F6F6F6FFF6F6F6FFF6F6F6FF1A7DC2FF1A7DC2FF1A7DC2FFF6F6F6FFF6F6
-        F6FFF6F6F6FF424242FF424242FF868686FFF6F6F6EFF6F6F630000000000000
-        0000F6F6F6FF1A7DC2FF1A7DC2FF1A7DC2FFF6F6F6FF1A7DC2FF1A7DC2FF1A7D
-        C2FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6EFF6F6F63000000000000000000000
-        0000F6F6F6FFF6F6F6FFBFD8E9FF1A7DC2FF1A7DC2FF1A7DC2FFBFD8E9FFF6F6
-        F6FFF6F6F6FF0000000000000000000000000000000000000000000000000000
-        000000000000F6F6F6FF1A7DC2FFF6F6F6FF1A7DC2FFF6F6F6FF1A7DC2FFF6F6
-        F6FF000000000000000000000000000000000000000000000000000000000000
-        000000000000F6F6F6FFF6F6F6FFF6F6F6FF1A7DC2FFF6F6F6FFF6F6F6FFF6F6
-        F6FF000000000000000000000000000000000000000000000000000000000000
-        0000000000000000000000000000F6F6F6FFF6F6F6FFF6F6F6FF000000000000
-        0000000000000000000000000000000000000000000000000000000000000000
-        0000}
       Transparent = True
       Transparent = True
     end
     end
     object EmptyRadioButton: TRadioButton
     object EmptyRadioButton: TRadioButton
@@ -123,42 +88,6 @@ object StartupForm: TStartupForm
       Width = 16
       Width = 16
       Height = 16
       Height = 16
       AutoSize = True
       AutoSize = True
-      Picture.Data = {
-        07544269746D617036040000424D360400000000000036000000280000001000
-        000010000000010020000000000000040000C40E0000C40E0000000000000000
-        000000000000F6F6F610F6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-        F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-        F6FF00000000F6F6F670C8DEECFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6
-        DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFFB6D3E6FF7AB6DCFFF6F6
-        F6FF00000000F6F6F6DF91C2E1FF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6
-        DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFF89BDDFFFF1EFF0FF7AB6DCFFF6F6
-        F6FFF6F6F640DFEAF1FF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6
-        DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFFD3E1EBFFF1EFF0FF7AB6DCFFF6F6
-        F6FFF6F6F69FA9CEE6FF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6
-        DCFF7AB6DCFF7AB6DCFF7AB6DCFF9FC8E2FFF1EFF0FFF1EFF0FF7AB6DCFFF6F6
-        F6FFF6F6F6FF82BADEFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6
-        DCFF7AB6DCFF7AB6DCFF81BADDFFE2E8EEFFF1EFF0FFF1EFF0FF7AB6DCFFF6F6
-        F6FFF6F6F6FFF6F6F6FF81BADDFFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EF
-        F0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FF7AB6DCFFF6F6
-        F6FF00000000F6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF1EFF0FFF1EF
-        F0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FF7AB6DCFFF6F6
-        F6FFF6F6F68FE0CDB9FFA25D0FFF9C5300FFF6F6F6FFF6F6F6FFF1EFF0FFF1EF
-        F0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FF7AB6DCFFF6F6
-        F6FFF6F6F6FFA25D0FFFBE905CFFEBE2D7FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-        F6FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FF7AB6DCFFF6F6
-        F6FFF6F6F6FF9C5300FFE0CDB9FFF6F6F6FFBE905CFF9C5300FFBE905CFFF6F6
-        F6FFF6F6F6FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FFF1EFF0FF7AB6DCFFF6F6
-        F6FFF6F6F6FFA25D0FFFBE905CFFEBE2D7FFF6F6F6FFBE905CFF9C5300FFAD72
-        2EFFF6F6F6FF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFF7AB6DCFFF6F6
-        F6FFF6F6F68FDAC3A9FFA25D0FFF9C5300FF9C5300FF9C5300FF9C5300FF9C53
-        00FFCFAF8AFFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6FFF6F6
-        F6FF00000000F6F6F68FF6F6F6FFF6F6F6FFF0ECE7FFAD722EFF9C5300FFBE90
-        5CFFF6F6F6EFF6F6F63000000000000000000000000000000000000000000000
-        00000000000000000000F6F6F630F6F6F6EFAD722EFF9C5300FFBE905CFFF6F6
-        F6EFF6F6F6300000000000000000000000000000000000000000000000000000
-        000000000000F6F6F630F6F6F6EFF6F6F6FFF6F6F6FFF6F6F6FFF6F6F6EFF6F6
-        F630000000000000000000000000000000000000000000000000000000000000
-        0000}
       Transparent = True
       Transparent = True
     end
     end
     object OpenRadioButton: TRadioButton
     object OpenRadioButton: TRadioButton

+ 28 - 1
Projects/CompStartup.pas

@@ -38,10 +38,13 @@ type
     procedure DblClick_(Sender: TObject);
     procedure DblClick_(Sender: TObject);
     procedure OpenListBoxClick(Sender: TObject);
     procedure OpenListBoxClick(Sender: TObject);
     procedure OKButtonClick(Sender: TObject);
     procedure OKButtonClick(Sender: TObject);
+    procedure FormAfterMonitorDpiChanged(Sender: TObject; OldDPI,
+      NewDPI: Integer);
   private
   private
     FResult: TStartupFormResult;
     FResult: TStartupFormResult;
     FResultFileName: TFileName;
     FResultFileName: TFileName;
     procedure SetMRUList(const MRUList: TStringList);
     procedure SetMRUList(const MRUList: TStringList);
+    procedure UpdateImages;
   public
   public
     property MRUList: TStringList write SetMRUList;
     property MRUList: TStringList write SetMRUList;
     property Result: TStartupFormResult read FResult;
     property Result: TStartupFormResult read FResult;
@@ -51,7 +54,7 @@ type
 implementation
 implementation
 
 
 uses
 uses
-  CompMsgs, CmnFunc, CmnFunc2, CompForm;
+  CompMsgs, CmnFunc, CmnFunc2, CompForm, ComCtrls;
 
 
 {$R *.DFM}
 {$R *.DFM}
 
 
@@ -64,12 +67,36 @@ begin
   UpdateHorizontalExtent(OpenListBox);
   UpdateHorizontalExtent(OpenListBox);
 end;
 end;
 
 
+procedure TStartupForm.UpdateImages;
+
+  function GetBitmap(const Button: TToolButton; const WH: Integer): TBitmap;
+  begin
+    Result := CompileForm.ToolBarImageCollection.GetBitmap(Button.ImageIndex, WH, WH)
+  end;
+
+var
+  WH: Integer;
+begin
+ { After a DPI change the button's Width and Height isn't yet updated, so calculate it ourselves }
+  WH := MulDiv(16, CurrentPPI, 96);
+  NewImage.Picture.Bitmap := GetBitmap(CompileForm.NewButton, WH);
+  OpenImage.Picture.Bitmap := GetBitmap(CompileForm.OpenButton, WH);
+end;
+
+procedure TStartupForm.FormAfterMonitorDpiChanged(Sender: TObject; OldDPI,
+  NewDPI: Integer);
+begin
+  UpdateImages;
+end;
+
 procedure TStartupForm.FormCreate(Sender: TObject);
 procedure TStartupForm.FormCreate(Sender: TObject);
 begin
 begin
   FResult := srNone;
   FResult := srNone;
 
 
   InitFormFont(Self);
   InitFormFont(Self);
 
 
+  UpdateImages;
+
   OpenListBox.Items.Add(SCompilerExampleScripts);
   OpenListBox.Items.Add(SCompilerExampleScripts);
   OpenListBox.Items.Add(SCompilerMoreFiles);
   OpenListBox.Items.Add(SCompilerMoreFiles);
   OpenListBox.ItemIndex := 0;
   OpenListBox.ItemIndex := 0;

+ 3 - 0
Projects/CompWizard.dfm

@@ -891,6 +891,7 @@ object WizardForm: TWizardForm
           CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
           CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
           CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
           CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
           CCCCCCCCCCCCCCCC0000}
           CCCCCCCCCCCCCCCC0000}
+        Stretch = True
       end
       end
       object WelcomeLabel1: TNewStaticText
       object WelcomeLabel1: TNewStaticText
         Left = 176
         Left = 176
@@ -1698,6 +1699,7 @@ object WizardForm: TWizardForm
             4433333444444444444444444440444444444444444444444444444444444444
             4433333444444444444444444440444444444444444444444444444444444444
             4444444444444444444044444444444444444444444444444444444444444444
             4444444444444444444044444444444444444444444444444444444444444444
             444444444440}
             444444444440}
+          Stretch = True
         end
         end
         object PageNameLabel: TNewStaticText
         object PageNameLabel: TNewStaticText
           Left = 24
           Left = 24
@@ -1730,6 +1732,7 @@ object WizardForm: TWizardForm
         Top = 0
         Top = 0
         Width = 164
         Width = 164
         Height = 314
         Height = 314
+        Stretch = True
       end
       end
       object FinishedLabel: TNewStaticText
       object FinishedLabel: TNewStaticText
         Left = 176
         Left = 176

TEMPAT SAMPAH
Projects/Compil32.manifest.res


+ 6 - 0
Projects/Compil32.manifest.txt

@@ -25,6 +25,12 @@
         </requestedPrivileges>
         </requestedPrivileges>
     </security>
     </security>
 </trustInfo>
 </trustInfo>
+<application xmlns="urn:schemas-microsoft-com:asm.v3">
+    <windowsSettings>
+      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware>
+      <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
+    </windowsSettings>
+</application>
 <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
 <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
     <application>
     <application>
         <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
         <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>

+ 2 - 2
compile.bat

@@ -1,7 +1,7 @@
 @echo off
 @echo off
 
 
 rem  Inno Setup
 rem  Inno Setup
-rem  Copyright (C) 1997-2018 Jordan Russell
+rem  Copyright (C) 1997-2019 Jordan Russell
 rem  Portions by Martijn Laan
 rem  Portions by Martijn Laan
 rem  For conditions of distribution and use, see LICENSE.TXT.
 rem  For conditions of distribution and use, see LICENSE.TXT.
 rem
 rem
@@ -14,7 +14,7 @@ if exist compilesettings.bat goto compilesettingsfound
 echo compilesettings.bat is missing or incomplete. It needs to be created
 echo compilesettings.bat is missing or incomplete. It needs to be created
 echo with the following line, adjusted for your system:
 echo with the following line, adjusted for your system:
 echo.
 echo.
-echo   set DELPHIXEROOT=C:\Program Files\Embarcadero\RAD Studio\19.0 [Path to Delphi 10.2 Tokyo (or later)]
+echo   set DELPHIXEROOT=C:\Program Files\Embarcadero\RAD Studio\20.0 [Path to Delphi 10.3 Rio (or later)]
 goto failed2
 goto failed2
 
 
 :compilesettingsfound
 :compilesettingsfound

+ 2 - 1
whatsnew.htm

@@ -91,6 +91,7 @@ For conditions of distribution and use, see <a href="http://www.jrsoftware.org/f
   <li>Compiler IDE changes:
   <li>Compiler IDE changes:
   <ul>
   <ul>
     <li>Updated all icons and flattened the interface for a more modern look.</li>
     <li>Updated all icons and flattened the interface for a more modern look.</li>
+    <li>The Compiler IDE now uses per-monitor DPI awareness mode and also allows the "Segoe UI" font for its interface elements.</li>
     <li>Options button <i>Associate .iss files with this compiler</i> can now associate for the current user instead of displaying an error if administrative privileges are not available.</li>
     <li>Options button <i>Associate .iss files with this compiler</i> can now associate for the current user instead of displaying an error if administrative privileges are not available.</li>
     <li>Options <i>Allow Undo after save</i> and <i>Show indentation guides</i> are now on by default for new installations.</li>
     <li>Options <i>Allow Undo after save</i> and <i>Show indentation guides</i> are now on by default for new installations.</li>
     <li>The "Compiler Output" view is now colorized. This can be turned off in the options.</li>
     <li>The "Compiler Output" view is now colorized. This can be turned off in the options.</li>
@@ -123,7 +124,7 @@ For conditions of distribution and use, see <a href="http://www.jrsoftware.org/f
   <li>Added new <i>AllPagesExample.iss</i> example script which shows all the wizard pages Setup may potentially display.</li>
   <li>Added new <i>AllPagesExample.iss</i> example script which shows all the wizard pages Setup may potentially display.</li>
   <li>Other documentation and examples improvements.</li>
   <li>Other documentation and examples improvements.</li>
   <li>Added official Icelandic translation.</li>
   <li>Added official Icelandic translation.</li>
-  <li>Delphi compiler updated from Delphi 2009 to Delphi 10.2 Tokyo. This change increases the size of Setup but decreases development, testing and deployment times. It also makes it easier to compile Inno Setup yourself using the free Delphi Community Edition.</li>
+  <li>Delphi compiler updated from Delphi 2009 to Delphi 10.3 Rio. This change increases the size of Setup but decreases development, testing and deployment times. It also makes it easier to compile Inno Setup yourself using the free Delphi Community Edition.</li>
   <li>Minor tweaks.</li>
   <li>Minor tweaks.</li>
 </ul>
 </ul>