Check-in [67c88e0b92]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Added gesture (long tap should pop up the relevant control's PopupMenu).
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 67c88e0b9214c6d9c2625b01d0b14164ade831ec
User & Date: MCO 2013-07-29 15:21:11
Context
2013-07-29
17:24
Added TText instead of TButton's caption, so it can be left-aligned check-in: 48ac2f8d76 user: tinus tags: trunk
15:21
Added gesture (long tap should pop up the relevant control's PopupMenu). check-in: 67c88e0b92 user: MCO tags: trunk
13:15
Added OSX platform. check-in: 235587b775 user: MCO tags: trunk
Changes

Changes to ProjectIt/src/F_ActiveProject.fmx.

2
3
4
5
6
7
8

9
10
11
12



13
14
15
16
17
18
19
..
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
...
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
...
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
...
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
...
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
...
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
...
485
486
487
488
489
490
491
492



493

  Left = 0
  Top = 0
  Caption = 'Projects'
  ClientHeight = 341
  ClientWidth = 325
  Position = poScreenCenter
  Transparency = True

  FormFactor.Width = 320
  FormFactor.Height = 480
  FormFactor.Devices = [dkDesktop, dkiPhone, dkiPad]
  OnCreate = FormCreate



  DesignerMobile = False
  DesignerWidth = 0
  DesignerHeight = 0
  DesignerDeviceName = ''
  DesignerOrientation = 0
  object lytProjects: TLayout
    Align = alClient
................................................................................
        Width = 50.000000000000000000
        object anmProjectIcon: TBitmapAnimation
          Duration = 0.200000002980232200
          PropertyName = 'Bitmap'
          StartValue.PNG = {
            89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
            F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
            02F6494441545847E5973D6814411886DF99DD0D77670CD14202829DA0B5F682
            BDAD8D588B458A808DAD2068A39D601A0B857476DA5A5B591950B09470E17E92
            8BF797DB1FDF6F762EECCCEE598C655EF86E666EBFE7BD6FBE9BBD1F9C7B293B
            96BAF536C12C7D893C7B08155F00727B41C454958D91657BD0579F60FFFEA9BD
            502A908DED586AB67871E3E6959D77CFEE629115989FE648F3026901148C288E
            DB6FF6BE6D7FFAFC3D63F64E095905B26E07AEBF3ED87D756FABD38A713C5918
            A3053792D128676A14296C6E76F0E8F1C72E7E6E6F59AA5420ABED584AA9F660
            96A33B9A63304ED1FFB38CCC8CDD518ADFC305138B8D12A82890750BA08EC719
            0616EA8BD159F039468FCF238E6CB6AB10D6EF0086F31483098D4CE466EC73EC
            9B31C32103BAA18040D62B00389A15A685C3290DA6D68073139CF7C67C63A35A
            E382596FA530A2C990EF656942434669226381C329F362F7EC1A05B25E07344E
            78870E6527D5B006FD19D0E34EEA27870A64DD6594E09807F588C947F3D2AC2F
            C1798FE603466FCE1D240D672090750B588B7022264C36B15098E61AA922A463
            143C40B91C22B6BBA640D6EB80C688E0884613C20221E687A5445499D3B0A640
            D62D406B8C338D390854A1EA3C4998D7D08140D62B406126064BA029E436E28B
            D514C87A4EAC4E2A5EB50313B20B464D61AC570E4D1CC00B314C38AEE84023B3
            8C15ACBBE2BD5C83AA6B13B283860202596FC5841A64A36A28EDF615C8BA0524
            BC2827D587AA7373921B3A10C87A2B2E9726AB420C938602025977C5AF5463B4
            6A0726A4856E1B8D0259AF1C2EFFB50B6368F37C05B2EE8A2759C9ADE24095B9
            8410DEA7995120EB1500B4F9A3F20C94581E1CF91493368BF8544D81AC5780C6
            C58E18312BA2C1B25D02F3A7F599C4DC5720EB15904C2EB580CB1D858D35E6FA
            AD966CFEA6E095913C3A0A64DD02D6A30FDDAF3F50D020E16E5AEB0CFEC7D16D
            FAD3DC1CA2FD5FB2C3F726BFAA40D62DF3CE9718D7F473FEA5794074BD2C8F0F
            5A7A28A9F9182ADA43ABF514BBB7F9CD5FD1FFB0E758C05F6E452CC67E136ADF
            0000000049454E44AE426082}
          StopValue.PNG = {
            89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
            F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
            0217494441545847E5964D6EC23010851D1289B64BB608893D4760D99F0354EA
            15DA737088AA8BF6041CA1557B0B105B24962C40A03688D0D4CF64AAB1639364
            BAEC278D3C71DE9B4C3C0850FF9EA8580DE3F1389E4C260F3ABDD17166366DD2
            3CCFDFA3287A1A8D4659B167907A9362354CA7D3FB4EA773371C0ED5E17050DA
................................................................................
            731F12AFB7013A4A22F4401789D76A40FF54A6540411326BDD6791FE22F5BA0D
            BC2D974B9353219A2705FEDFEBF5D5881852AF755EBD5EEF65B158E4DBEDF65A
            173C2FB60D28A0F9D2BFF71FDD6EF7D96C32FEE2FDCF28F503FFBF4CF4440E05
            8E0000000049454E44AE426082}
        end
      end
      object efctGlow: TInnerGlowEffect
        Softness = 0.400000005960464500
        GlowColor = claWhite
        Opacity = 0.899999976158142100
        Trigger = 'IsMouseOver=true'
        Enabled = False
      end
      object txtProject: TText
        Anchors = [akLeft, akTop, akRight, akBottom]
................................................................................
        Width = 50.000000000000000000
        object anmProject2Icon: TBitmapAnimation
          Duration = 0.200000002980232200
          PropertyName = 'Bitmap'
          StartValue.PNG = {
            89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
            F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
            068C494441545847D5575B6C145518FE7666DA2EDD767BBFD10B055A28A0ADA4
            D0D202E116221254488C8AA186188C0FF2A0C6487C30C667630226982A9198A0
            A48040401F14D3D2252842000997D2422DD03B56BA856DB73BB3B3337E6776B7
            6EDB2DB0FA60FCE0E4EC9C9973BEEFFCB7738AFF1AB650FFAFB065CB1687C7E3
            59171F1FBF49D7F55A4992DE3D7CF8F091D0EB87E21F0BA8ABABCB60B7C1EFF7
            6FF2F97C6B0133910DD5D5B5484D4D71399D8E9D8A92E03E76ECD8A0D3E97C87
            DF5EADAFAFFFC49A1C8198046CDDBAB55055D5E7354DDBC47E39771A67E30A45
            4545A8A9598EF2F25AE4E515C0EDEE61EB87C73362EED9536F3A1C0E89DFF7EE
            DBB72F3FB4D4181E2960F3E6CD659CBC893F3772A78B645992C478767616962E
            5D81CACAE5242D86AEAB1C3560B72BA02E7476FE89C6C6A3B87EFD02DF05E0F5
            7A6F353434CC127323115DC09B9D4F2E1ADCBB6586E7CCB3AAA99499FC4EEC34
            393919CB96AD4055D572E4E7CF4120108069FA6118012426C65BC4EDEDFDB878
            F1142E5D72616464048C0B4E9640F1ADFBF7EF9F176218437401AF9EEFCFCD1E
            CA59D4FB35720283967917D7AC4661F102787D01887F9AE627B989B4B444F632
            5A5B7B71E3C6798B7860E02E1212EC14248716044647472F1D38706061E8710C
            D105BC72DA8D354B53C5CF94046025C3AD5C19C19C4C09330C0FE6386D48CD72
            E0C18881CB2D7DE8EABE8E6BD79A69F62E284A1C6459099A8C08F71470E6E0C1
            83B5D64304A20B78D9D557B4A6227757F9301A6E1B38D11F0FB737157129329C
            F1C08C241335C92AA6DDFB03D35AEBD1D2F67B8858B608C34D40F4C2527441F3
            A1438756598311B0026A1274F83455C3C639D9F86A6D21BA5E4CC1AD8D03F8AC
            F40E564B37D1D9D58BDDBF31AFFA55B45DBD8CB838E17FC9229AAA1986E10BAD
            3E0ED105C886EAD50C78553FDC9C3614B023C159808D0B66E3AB0DF370AC7614
            081888576C90B8EB6884914D046B6C020C4355359D13817B34B300F930AAC312
            E437685EC3B09E8D2884139B406C0202019FDF6FC008E8560EB7B49C633E9F65
            90DD809FA47162510A0A9814122221C138D2C8E760BA9A3108B0057C86664223
            5B56561ECACAAA30776E355252F2303CFC008C71120730EA27013F0F134E1421
            5A18FC1D8B0BE0831EB4405F5F175348141BC0E1484652B213928D0F864E5748
            D6EE781EB01EA4B12A5686773BAE893136512A2721BA001D2A57874A0B242565
            A39B79DEDA7A9685E61C2DE0856C729AC9F78C133B0BCE531515AC8CF974558B
            357DA22504D833722723BA0089014301A2DA4DB327A0B8B81CA5A5D59839B38A
            E9660F160F6101C6407A663606DD6E96DF8B14376C4D178814107B0C0873D105
            1A43BFAFBF8B6EB8C321B1283354E6141B4B2CCF009D01D979E73683B3D32A42
            0291C4E1168A8F185C20D4F280D19801B939853C5092D0D1718107CD391EB303
            7CAFD00242236D6153C61145F691E36CB158407C6CE0879BFD18B9DB89C28C0C
            CC2FAD446949154FC42CD8C4894C17681641305845C92D2B2B0B9B7B528B4D80
            8D16A017DE6F2BC1134735ACFCB2099F9E388DEE8ECB70708623DE4E91B4806E
            42A5ABB27372B070E1420C0D0D59D3A3908BE11804E85C9DBB8244C72B76B4DB
            2BD0EC2FC09A53E9A8FAFC477CFC938B870F53902E2ACC2F404949098FE14BCC
            96EEA8E4A2D132310800D350449D506E8BC30E7517F28EBC80F7E4BD1848ACC0
            17EE2AE8521A6F0526BA7A7B71CAE5026F4D63275FB8098831E1168A88210D85
            BF84009AB82253C5ED2BBF20296F36DC77AEE0998C0ECBFFA2197C4F8AB18BC7
            4472D1DFBF7F9FAED27FE569E9B20627600A01220644DEB1246A01A4B2CAA5A4
            B06564A3C0BC2BDE0B918C55E6388B92084441264C1D2627A98809F1B09BAE59
            E972B982013201D105C8369662EE9299D03620A378FE6224F3B2393D2B0D6E39
            93C31447E84288F81FDA75989CB766A6AB7B585194BAC6C6C6EDEDEDED516B80
            C0143190DC81618FB8C6D0C206767AD62373560586D32BF06D473A19294EF895
            2EB03484880578F51297D1565E466B48FE4D68784A5855352AD69D7C0BA33D6F
            B3161721230FC8C8098E9BC1EBB7D8B93CAC6259E707B02B8C073E33104DBAE1
            507A7AFAB6E3C78F7B82131E8EA90558382863AD7D3DAF466F40F73E8DAC7485
            A5113CA12C0B60C88715BD1F42E13933EA5335BBDDBEA3A9A9691727FE6D9247
            E0110222B0EAFB195047B64175BFC63F02A6239756511C58D2F31114FFBD1E25
            21E9A5E6E6E69F435F3F361E5F40182B4E2A78D0F61C63E37518F2824469E0EC
            92D4EFB637359D657AFCEF00FC056B5549D12AC4EEC50000000049454E44AE42
            6082}
          StopValue.PNG = {
            89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
            F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
            0476494441545847D597CB4B644714C6CB6E1FED5BD1A0A00E66152538082191
            0467994548C86A924536596515170151778A0B83E046DD04DCB89721E40FC822
            A04B4106242A2AEAA08EA2E01BB57D74CEEFE49E9EF2E6B6733BB308F9A0A87B
            CFAD5BDF57DF3955B7DBFDD72808FA77C2F4F4746A6F6FEF936432F9ECFEFEFE
................................................................................
            A2AF65B51F171717271163DF035F8088BD91F894ACFA850662E251013E464646
            1A24E75F8A902F84A81E210001123B1487847B7851837920B600C3CCCC4C7269
            69893F2C5FC96DABF44B527013A3A3A37F1F93FF2F38F717D264350CD60585CC
            0000000049454E44AE426082}
        end
      end
      object efctGlow2: TInnerGlowEffect
        Softness = 0.400000005960464500
        GlowColor = claWhite
        Opacity = 0.899999976158142100
        Trigger = 'IsMouseOver=true'
        Enabled = False
      end
    end
    object btnProject3: TCornerButton
................................................................................
        Width = 50.000000000000000000
        object anmProject3Icon: TBitmapAnimation
          Duration = 0.200000002980232200
          PropertyName = 'Bitmap'
          StartValue.PNG = {
            89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
            F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
            0691494441545847D5576D6C5355187EDADEAD656BBBEF6E639FC03606E8E632
            D8D880F02511092A24465D0286188C3FE4871A23F18731FE3626608299120909
            4A6013C8D01F8AD958098A1040C2C7D8600ED8601B0ED6B1755BEFEDEDBD3EE7
            B69DDDE880EA0FE3036F4EEFB9F79CE739EFFB9EF79CE1BF8629D4FE2B6CDAB4
            29716464646D7C7CFC4655556BCD66F3FB870E1D3A1C7AFD48FC63019B376F4E
            63B3DEEFF76FF4F97C6B003D8186EAEA5A242727B99DCEC41D9264F53435350D
            3A9DCEF7F8EDE5FAFAFACF8CC1118849C0962D5BF264597E4951948D6C9771A5
            7126CE909F9F8F9A9A65282BAB4576762E3C9E3BB47E0C0F7BF5DDBBEB75BBDD
            6EE6F7BDFBF6EDCB094D3581C70AA8ABAB2BE5E08DFCB9617C7C7CA12459CCA2
            DFE5CAC09225CB5159B98CA485505599BD1A6C3609D485EEEE7B686E3E82AB57
            CFF15D00636363370E1C38305B8C8D4474016F773FBD7070CFA68291532FC8BA
            54AAF33BB15287C381A54B97A3AA6A1972724A100804A0EB7E685A000909F106
            7167673FCE9F3F810B17DC181D1D05F38283CD6098DAF7EFDF3F2FC43081E802
            5E3FDB9FE51ACA5CD8FB0D320383867B17D5AC425EE1028CF90210FF14C54F72
            1D2929096C2D686FEFC5B56B670DE28181BBB05A6D1464094D08D07B170E1E3C
            58117A9C40740175273D787649B2F89964055630DDCAA45194A49B51A08DA0C4
            69427246228647355C6CEB43CFEDABB872A5956EEF8124C5C16291822E23C22D
            059C6A6868A8351E22105DC06BEEBEFCD5E5593BCBBC387053C3B1FE7878C692
            11976481331E28B0EBA871C89871FF4FCC68AF475BC71F21628B41183601D10A
            4F3104AD8D8D8D2B8DCE081809F510FCF029B2820D252EEC5D93879E57927063
            C300BE28BE8555E6EBE8EEE9C5AEDFB9AFFA65745CBE88B838117FB341349D69
            9AE60BCD3E09D105489A3CA6681893FDF070D850C006AB33171B16CCC1DEF5F3
            D0543B0E0434C44B2698B9EA68849126923536019A26CB8ACA81C07DBA59807C
            18576108F26B74AFA619CF5A14C2A926109B8040C0E7F76BD002AAB187DBDACE
            703F9F66925D839FA47162520A0AE814122221C124D2C8E7E076D56310600AF8
            34458742B68C8C6C94965661EEDC6A242565C3EB1D06739CC4018CFB49C0CFC3
            845345080B83BF6309017C50831EE8EBEBE11612C506484C74C0EE70C26CE283
            A632146663753C0F580F5258152BC3AB9D64A28F264AE543882E4085CCD921D3
            0376BB0BB7B9CFDBDB4FB3D09CA107C660D1394CE77BE6898D05E799F27256C6
            1C86AACD183ED513026C99B90F23BA003313860244B59B61B3A2B0B00CC5C5D5
            9835AB8ADBCD162C1EC203CC81D47417063D1E96DFF314E735860B440A883D07
            84BB180285A9DFD7DFC330DC629798142C361C626289E519A03221BB6FDD6472
            761B45482092386CA1FC882104422D0F18853B202B338F078A1D5D5DE778D09C
            E1313BC0F7123D2034D21726691251641BD94F8BC503E2630D3F5EEFC7E8DD6E
            E4A5A5617E71258A8BAA782266C0C4AA2742A01804C1641525B7B4B434ECEE87
            2C3601267A8051F8B0A3084F1D51B0E2EB167C7EEC246E775D44224724C6DB28
            921E5075C80C952B3313151515181A1A3286472117DD310850393B570533032F
            D9D0692B47AB3F17AB4FA4A2EACB9FF0E9CF6E1E3EDC820C515E4E2E8A8A8A78
            0C5FE06EB91D955C183D138300701B8AAC13CA4D71D82EEF44F6E197F181650F
            0612CAF195A70AAA3985B7021D3DBDBD38E17683B7A689932F6C02A24F848522
            62D886225E42005D5C9E2EE3E6A55F61CF9E03CFAD4B783EADCB88BF308DEF49
            3171F1984A2EDA070F1E3054EA6F3C2DDD46E7144C2340E480D8772C894A00C9
            AC724949B4341772F5BBE2BD10C95CE51E6751128928C884ABC3E4241539211E
            7631342BDC6E773041A620BA008B89A598ABE44EE818B0A070FE223878D99C99
            91028F259DDD1447A84288F81F5A75989CB7660C0E0E7A2549DADCDCDCBCADB3
            B3336A0D109826071C5DF00E8B6B0C3DAC61C7C83AA4CF2E8737B51CDF75A592
            91E2445C19024343885880572F71196DB75AAD3524FF36D43D2D8CAA1A156B8F
            BF83F13BEFB216E7232D1B48CB0CF6EBC1EBB758B9C52B6369F747B049CC073E
            33117586A131353575EBD1A3474782031E8DE9051868B0608D6D1DAF466FC13F
            FA1C5C69124B237842191EC0900FCB7B3F86C47366DC272B369B6D7B4B4BCB4E
            0EFCDB258FC163044460E50F059047B742F6BCC13F0266228B5E9112B1F8CE27
            90FCF7EE4856C7ABADADADBF84BE7E623CB98030961F9730DCF12273E34D6896
            0509E681D38B93BFDFD6D2729ADBE37F07E02F663249D01A5A0E090000000049
            454E44AE426082}
          StopValue.PNG = {
            89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
            F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
            0476494441545847D597CB4B644714C6CB6E1FED5BD1A0A00E66152538082191
            0467994548C86A924536596515170151778A0B83E046DD04DCB89721E40FC822
            A04B4106242A2AEAA08EA2E01BB57D74CEEFE49E9EF2E6B6733BB308F9A0A87B
................................................................................
            A2AF65B51F171717271163DF035F8088BD91F894ACFA850662E251013E464646
            1A24E75F8A902F84A81E210001123B1487847B7851837920B600C3CCCC4C7269
            69893F2C5FC96DABF44B527013A3A3A37F1F93FF2F38F717D264350CD60585CC
            0000000049454E44AE426082}
        end
      end
      object efctGlow3: TInnerGlowEffect
        Softness = 0.400000005960464500
        GlowColor = claWhite
        Opacity = 0.899999976158142100
        Trigger = 'IsMouseOver=true'
        Enabled = False
      end
    end
  end
................................................................................
      Text = 'Projects...'
      OnExecute = actViewProjectsExecute
    end
    object actFileExit: TFileExit
      Hint = 'Quit|Quits the application'
      ImageIndex = 43
    end
  end



end








>




>
>
>







 







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







 







|







 







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







 







|







 







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|







 







|







 








>
>
>
|
>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
..
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
...
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
...
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
...
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
...
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
...
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
...
489
490
491
492
493
494
495
496
497
498
499
500
501
  Left = 0
  Top = 0
  Caption = 'Projects'
  ClientHeight = 341
  ClientWidth = 325
  Position = poScreenCenter
  Transparency = True
  TopMost = True
  FormFactor.Width = 320
  FormFactor.Height = 480
  FormFactor.Devices = [dkDesktop, dkiPhone, dkiPad]
  OnCreate = FormCreate
  Touch.GestureManager = gmActiveProject
  Touch.InteractiveGestures = [igLongTap]
  OnGesture = FormGesture
  DesignerMobile = False
  DesignerWidth = 0
  DesignerHeight = 0
  DesignerDeviceName = ''
  DesignerOrientation = 0
  object lytProjects: TLayout
    Align = alClient
................................................................................
        Width = 50.000000000000000000
        object anmProjectIcon: TBitmapAnimation
          Duration = 0.200000002980232200
          PropertyName = 'Bitmap'
          StartValue.PNG = {
            89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
            F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
            02F7494441545847E5573D681441187D33BB97FB3186682101C14ED05A7BC1DE
            D646ACC52245C0C65610B4D14E308D85423A3B6DADADAC0C285806B9703FC9C5
            FBCBED8FEF9B9D0B3BB37B16639907EF66E6F67B2FDFF7CDEC660FE71ECA8E05
            6EBD6D6096BC44963E848A2F0099BD2060A84AC748D33DE8AB4FB07FFFD45E28
            10A88DED5860B67871E3E6959D77CFEE6291E6989F6648B21C490EE46414C7ED
            377BDFB63F7DFE9E327AA71059046ADD0E5C7FFD7BF7D5BDAD4E2BC6F164618C
            162C24A551C6D02852D8DCECE0D1E38F5DFCDCDEB2AA02815A6DC7024AB507B3
            0CDDD11C837182FE9F2553337647090E860B06E61B85A08440AD9B00713C4E31
            B0A2BE189D91DF913D7E8F38B2D12E42B45E0780E13CC1604223C3CC8C7D8E7D
            33A63824B9A3457C1981DA4A0247B3DCB47038A5C1D41A706EC8796FCC8D8D2A
            8D0BD65656239A0CB99785090DC9C244C61C8753C6C5EED93508D47AA5689CF0
            0E1D4A25655A83FE0CE8B1125F55204CEB2E7513C73CA8470C3E9A17667D21E7
            3D9A0FC8DE9C1534EB3A10A675136845381113061B2E14A69946A27870748C5C
            47C848E89A0402B56E023C20230A47349A502C22C47C580AA3D29C8615046ABD
            2DD018A71A73B955CAA2F2BCD1605CDD168469BD04146662B014D4516E23FEB1
            0A02B55527C9785505865245D3067B08D0561370041EC5B0C1B1AE03823ACD92
            2BB4EE4A71E98BCA6B4356519377A8D65BB13D159165D9509EBB3E02B56E02F2
            909093EA8BCA73B95ED78140ADB7E27269B28A62D8A8492050EBAE14AB10A355
            15184A0BDD361A046ABD74B8FC5715C6D0C6F908D4BA2B9E6425B78A232ACD85
            A2A87B12066ABD0480365F2ACF8442A9CAB49694360BEA9E43815A3701E26247
            8C288C68B06C9788F96A7D86B8223308D17A4ECDC9A51670B9A3B0B126B136EB
            25249AEF14C0DA483E5D8469DD0436A20FDDAF3F90D3A0C16A5AEB247FE3E836
            0BA1B93944FBBFA4C2F726BE8C40AD9BE69D2F31AEE9E7FC49F380D2F5223D7E
            68E9A18426639EB43DB45A4FB17B9BFFF94BF81FED3906F01736C72CC6704C4B
            F60000000049454E44AE426082}
          StopValue.PNG = {
            89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
            F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
            0217494441545847E5964D6EC23010851D1289B64BB608893D4760D99F0354EA
            15DA737088AA8BF6041CA1557B0B105B24962C40A03688D0D4CF64AAB1639364
            BAEC278D3C71DE9B4C3C0850FF9EA8580DE3F1389E4C260F3ABDD17166366DD2
            3CCFDFA3287A1A8D4659B167907A9362354CA7D3FB4EA773371C0ED5E17050DA
................................................................................
            731F12AFB7013A4A22F4401789D76A40FF54A6540411326BDD6791FE22F5BA0D
            BC2D974B9353219A2705FEDFEBF5D5881852AF755EBD5EEF65B158E4DBEDF65A
            173C2FB60D28A0F9D2BFF71FDD6EF7D96C32FEE2FDCF28F503FFBF4CF4440E05
            8E0000000049454E44AE426082}
        end
      end
      object efctGlow: TInnerGlowEffect
        Softness = 0.400000005960464400
        GlowColor = claWhite
        Opacity = 0.899999976158142100
        Trigger = 'IsMouseOver=true'
        Enabled = False
      end
      object txtProject: TText
        Anchors = [akLeft, akTop, akRight, akBottom]
................................................................................
        Width = 50.000000000000000000
        object anmProject2Icon: TBitmapAnimation
          Duration = 0.200000002980232200
          PropertyName = 'Bitmap'
          StartValue.PNG = {
            89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
            F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
            068D494441545847D5575B6C5455145D3373A71DDACEF4DD52FA045A28A0AD0D
            D0D202E1954624A86D6254126A88C1F8211F6A8CC40F63FC36266082A9120909
            4A0A88A4E887625A3A04C512C0864769A116FA2E163A2D9DB673EFDCB9D775EE
            CCD4693B05463F8C0B76CEDC73EF396B9DBDF7D9E714FF354C81F65F61E7CE9D
            B16363635BA3A2A2AA5555AD309BCDEF9D3C79F2BBC0EB47E21F0BA8A9A94966
            B3DDEBF5567B3C9E4A408FA1A1ACAC020909F14E8723769F2445BBEAEBEB871D
            0EC7BBFCF67A6D6DEDA7C6E010442460D7AE5DD9B22CBFA8284A35DBF55CA9D5
            C419727272505EBE1E454515C8C8C882CBD5471BC4E8E8987EF060AD6EB7DBCD
            FCBEFFC891239981A9A6F058013B76EC28E4E06AFEAC9A98985865B54A66D19F
            96968AB56B3760E5CAF524CD83AACAECD560B349A02E7477DF4743C329DCBC79
            99EF7CE0D83B7575758BC4D8508417F056F7D3AB860FEDCC1DBBF0BCAC4B853A
            BF132BE54AB06EDD069496AE4766E612F87C3EE8BA179AE6434C4C9441DCD131
            882B57CEA1A5C589F1F171302F38D80C86A9EDE8D1A3CB020C53082FE0B54B83
            F3D346D257F57F8D74DFB0E1DED5E59B919DB702131E1FC43F45F1925C476262
            0C5B0BDADAFA71EBD625837868E81EA2A36D1464094C084C4E4EB61C3B76AC24
            F03885F0025E3DEF42E5DA04F1333E1AD8C8742B92C6B124C58C5C6D0C4B1C26
            24A4C6E2E1B886ABAD03E8E9BD891B379AE8F61E489215168BE47719116C29E0
            C2F1E3C72B8C8710CC21C03990B3A578FEFE2237EAEE6A38331805D74402ACF1
            1638A280DC381DE57619F31EFC89796DB5686DFF23406C31088326205AE12986
            A0E9C489139B8CCE101809350B5E78145941D592341CAECC46CFCBF1B8533584
            CF0BBAB0D97C1BDD3DFD38F03BF7D5A08CF6EB5761B58AF89B0DA2B94CD3344F
            60F669082F40D2E40945C384EC858BC3467C36443BB250B562310E6F5F86FA8A
            49C0A7214A32C1CC5587230C3591AC9109D0345956540E041ED0CD02E4C3A40A
            439057A37B35CD78D6C210CE3481C804F87C1EAF5783E6538D3DDCDA7A91FBB9
            9949760B5E925AC5A414E4D3292440428269A4A1CFFEEDAA4720C0E4F3688A0E
            856CA9A919282C2CC5D2A565888FCF80DBFD10CC7112FB30E925013F0F12CE14
            212C08FE8E2404F040F57B6060A0875B48141B2036D68E38BB0366131F3495A1
            301BABE379C07A90C8AAB832B8DA6926FA68A254CE4278012A64CE0E991E888B
            4B432FF7795B5B330BCD457A6002169DC374BE679ED858709E292E6665CC64A8
            5A8DE1333D21C096993B1BE1059899301420AADD3C5B34F2F28A50505086850B
            4BB9DD6CFEE2213CC01C484A49C3B0CBC5F27B85E2DCC67081500191E7807017
            43A030F507067B18862E768949C162C3212696589E012A13B2BBEB2E93B3DB28
            4202A1C4410BE4470421106A79C028DC01F3D3B379A0C4A1B3F3320F9A8B3C66
            87F85EA2078446FAC2244D230A6D43FB699178407CACE1C7DB8318BFD78DECE4
            642C2F588982FC529E88A930B1EA89102806813F5945C92D2C2C0CBA7B964526
            C0440F300A1FB4E7E3A9530A367ED588CFCE9C476FE755C472446C948D22E901
            5587CC50A5A5A7A3A4A404232323C6F030E4A23B02012A67E7AA6066E0251B3A
            6CC568F26661CBB924947EF1133EF9D9C9C3875B9021CACECC427E7E3E8FE116
            EE96DEB0E4C2E899080480DB50649D506EB262AFBC1F19DFBD84F72D87301453
            8C2F5DA550CD89BC15E8E8E9EFC739A713BC354D9D7C4113107D222C1411C136
            14F11202E8E2E2141977AFFD8AB88CC570755DC373C99D46FC85697C4F8AA98B
            C74C72D18E8E8E3254EA6F3C2D9D46E70CCC2140E480D8772C898A0F09AC72F1
            F1B4E43464E9F7C47B2192B9CA3DCEA224125190095707C9492A72423C1C6068
            363A9D4E7F82CC40780116134B3157C99DD03E6441DEF2D5B0F3B2B92035112E
            4B0ABB298E508510F13FB0EA20396FCD3C451FB82549AA696868D8D3D1D111B6
            0608CC9103F64EB847C535861ED6B06F6C1B521615C39D548C6F3B93C8487122
            AE0C81A121402CC0AB97B88CB6D96CB672927F13E89E1346550D8BAD67DFC664
            DF3BACC53948CE0092D3FDFDBAFFFA2D566E71CB58D7FD216C12F381CF4C449D
            6138919494B4FBF4E9D363FE018FC6DC020C1CB7A0D2B68D57A337A1B89F457A
            8AC4D2089E50860730E2C186FE8F20F19C99F4C80A57BDB7B1B1713F07FEED92
            C7E0310242B0E9875CC8E3BB21BB5EE71F010B309F5E9162B1A6EF6348DEFB7D
            52B4FD95A6A6A65F025F3F319E5C40101BCE4A78D8FE0273E30D68961531E6A1
            E63509DFEF696C6CE6F6F8DF01F80B619449CF8A161C9B0000000049454E44AE
            426082}
          StopValue.PNG = {
            89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
            F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
            0476494441545847D597CB4B644714C6CB6E1FED5BD1A0A00E66152538082191
            0467994548C86A924536596515170151778A0B83E046DD04DCB89721E40FC822
            A04B4106242A2AEAA08EA2E01BB57D74CEEFE49E9EF2E6B6733BB308F9A0A87B
            CFAD5BDF57DF3955B7DBFDD72808FA77C2F4F4746A6F6FEF936432F9ECFEFEFE
................................................................................
            A2AF65B51F171717271163DF035F8088BD91F894ACFA850662E251013E464646
            1A24E75F8A902F84A81E210001123B1487847B7851837920B600C3CCCC4C7269
            69893F2C5FC96DABF44B527013A3A3A37F1F93FF2F38F717D264350CD60585CC
            0000000049454E44AE426082}
        end
      end
      object efctGlow2: TInnerGlowEffect
        Softness = 0.400000005960464400
        GlowColor = claWhite
        Opacity = 0.899999976158142100
        Trigger = 'IsMouseOver=true'
        Enabled = False
      end
    end
    object btnProject3: TCornerButton
................................................................................
        Width = 50.000000000000000000
        object anmProject3Icon: TBitmapAnimation
          Duration = 0.200000002980232200
          PropertyName = 'Bitmap'
          StartValue.PNG = {
            89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
            F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
            0691494441545847D5575B6C5455145D3373673A7DCCF4FDA20F0AB4A580B636
            85420BA43C8222416D132392B486188C1FF2A1C648FC30C66F630226982A9198
            A004A840403F14D3D221289600363C4A0BB5400B6DB1852974DACEBD73E75ED7
            B93353A7650A8C7E1817EC9CB9E7DE73D63A7BEFB3CF29FE6B9882EDBF427D7D
            7DFCE8E8E87A9BCD56A7AA6AB5D96C7EEFD0A1438783AF1F897F2CA0A1A12195
            CD469FCF57E7F57AD7017A1C0D4B9756232929D1E574C6EF90A418F7D1A347EF
            399DCE77F9EDA5C6C6C64F8DC161884AC0962D5BF264597E4951943AB62BB952
            AB8933E4E7E7A3AA6A254A4BAB919D9D0BB7FB366D1023230FF4DDBB1B750A30
            F3FBFEBD7BF7E604A79AC463056CDEBCB98483EBF8B3766C6C6CB1CD66358BFE
            8C8C742C5F5E838A8A95242D80AACAECD560B74BA02EF4F60EA3B9F908AE5C39
            C7777E8C8F8F5FDFBF7FFF5C31361C9105BCD5FBF4E27B7BEA678F9E7E41D6A5
            129DDF89953A1C0EAC585183CACA95C8C92986DFEF87AEFBA0697EC4C5D90CE2
            EEEE419C3F7F12EDED2E503098171C6C06C3D4B96FDFBE054186494416F0DAD9
            C1AC8C91CCC5FDDF20D37FCF70EF92AA35C82B588471AF1FE29FA2F848AE2339
            398EAD059D9DFDB87AF5AC413C3474073131760AB2042704262626DA0F1C3850
            1E7C9C4464019B4EB9F1ECF224F133310658C5742B95C6509C66C66C6D14C54E
            1392D2E3F1604CC3858E01F4DDBA82CB975BE9F63E489215168B147019116A29
            E0F4C18307AB8D87304416F0AA6B207F6D59D6CE520FF6DFD0707CD006F77812
            AC8916386DC0EC041D550E19B177FF446C67233ABAFE08125B0CC29009885678
            8A21686D6A6A5A6D7486C148A887E083579115D41667E0EB7579E87B2511D76B
            87F079D14DAC315F436F5F3F76FDCE7D3528A3EBD20558AD22FE66836826D334
            CD1B9C7D0A220B9034795CD1302EFBE0E6B011BF1D31CE5CD42E9A87AF372EC0
            D1EA09C0AFC1269960E6AA2311869B48D6E804689A2C2B2A070277E96601F261
            428521C8A7D1BD9A663C6B1108A79B407402FC7EAFCFA741F3ABC61EEEE838C3
            FDDCC624BB0A1F49AD62520AF2EB14122421C114D2F0E7C076D5A31060F27B35
            458742B6F4F46C94945462FEFCA5484CCC86C7F300CC7112FB31E123013F0F11
            4E17212C04FE8E2604F0420D786060A08F5B48141B203EDE8104871366131F34
            95A1301BABE379C07A90CCAA58115AED14137D34512A1F4264012A64CE0E991E
            4848C8C02DEEF3CECE36169A33F4C0382C3A87E97CCF3CB1B3E03C5356C6CA98
            C3507518C3A77B42802D33F76144166066C25080A876B1F618141494A2A86829
            E6CCA9E476B3078A87F0007320252D03F7DC6E96DFF314E731860B840B883E07
            84BB180285A93F30D8C730DC649798142C361C626289E519A032217B6FDE6072
            F61A4548209C3864C1FC882204422D0F18853B202B338F074A027A7ACEF1A039
            C3637688EF257A4068A42F4CD214A2F036BC9F168D07C4C71A7EBC3688B13BBD
            C84B4DC5C2A20A141556F2444C8789554F8440310802C92A4A6E494949C8DD0F
            5974024CF400A3F04157219E3AA260D5572DF8ECF829DCEAB980788E88B7D929
            921E5075C80C55466626CACBCB7901193186472017DD510850393B570533032F
            D9D16D2F43AB2F176B4FA6A0F28B9FF0C9CF2E1E3EDC820C515E4E2E0A0B0B79
            0CB773B7DC8A482E8C9E894200B80D45D609E5262BB6CB3B917DF865BC6FD983
            A1B8327CE9AE846A4EE6AD40475F7F3F4EBA5CE0AD69F2E40B9980E81361A188
            28B6A1889710401797A5C9B871F1572464CF83FBE6453C9FDA63C45F98C6F7A4
            98BC784C2717EDFDFBF7192AF5379E962EA3731A6610207240EC3B9644C58F24
            56B9C4445A6A0672F53BE2BD10C95CE51E6751128928C884AB43E4241539211E
            763134AB5C2E572041A621B2008B89A598ABE44EE81AB2A060E1123878D99C95
            9E0CB7258DDD1447A84288F81F5C75889CB7660C0F0F7B24496A686E6EDED6DD
            DD1DB10608CC90038E1E78A8DECBBC61DDDF31BA016973CBE04929C3773D2964
            A438115786C0D0102416E0D54B5C463B636363AB48FE6DB07B4618553522D69F
            781B13B7DF612DCE476A36909A19E8D703D76FB1728B47C68ADE0F6197980F7C
            6622EA0C43534A4ACAD663C78E8D06063C1A330B3070D08275F60DBC1ABD09D9
            F31CB2D2249646F084323C80112F6AFA3F82C47366C22B2B76BB7D7B4B4BCB4E
            0EFCDB258FC163048461F50FB3218F6D85EC7E9D7F04CC4216BD22C563D9ED8F
            21F9866F4B318E4DADADADBF04BF7E623CB980106A4E4878D0F52273E30D6896
            4571E6A1B66549DF6F6B6969E3F6F8DF01F80B5CFA49CE26E3549D0000000049
            454E44AE426082}
          StopValue.PNG = {
            89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7A
            F4000000017352474200AECE1CE90000000467414D410000B18F0BFC61050000
            0476494441545847D597CB4B644714C6CB6E1FED5BD1A0A00E66152538082191
            0467994548C86A924536596515170151778A0B83E046DD04DCB89721E40FC822
            A04B4106242A2AEAA08EA2E01BB57D74CEEFE49E9EF2E6B6733BB308F9A0A87B
................................................................................
            A2AF65B51F171717271163DF035F8088BD91F894ACFA850662E251013E464646
            1A24E75F8A902F84A81E210001123B1487847B7851837920B600C3CCCC4C7269
            69893F2C5FC96DABF44B527013A3A3A37F1F93FF2F38F717D264350CD60585CC
            0000000049454E44AE426082}
        end
      end
      object efctGlow3: TInnerGlowEffect
        Softness = 0.400000005960464400
        GlowColor = claWhite
        Opacity = 0.899999976158142100
        Trigger = 'IsMouseOver=true'
        Enabled = False
      end
    end
  end
................................................................................
      Text = 'Projects...'
      OnExecute = actViewProjectsExecute
    end
    object actFileExit: TFileExit
      Hint = 'Quit|Quits the application'
      ImageIndex = 43
    end
  end
  object gmActiveProject: TGestureManager
    Left = 208
    Top = 288
  end
end

Changes to ProjectIt/src/F_ActiveProject.pas.

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
..
33
34
35
36
37
38
39

40
41
42
43
44


45
46
47
48
49
50
51
..
61
62
63
64
65
66
67
















68
69
70
71
72
73
74
...
156
157
158
159
160
161
162
163
164
165
166
167
168

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Rtti, System.Classes,
  System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs,
  FMX.StdCtrls, FMX.Colors, FMX.Layouts, FMX.Objects, FMX.Ani, FMX.Effects,
  System.Actions, FMX.ActnList, FMX.Menus, FMX.StdActns;

type
  TfrmActiveProject = class(TForm)
    lytProjects: TLayout;
    btnProject: TCornerButton;
    rndrctTime: TRoundRect;
    txtTime: TText;
................................................................................
    mnuViewProjects: TMenuItem;
    aclProject: TActionList;
    actViewProjects: TAction;
    MenuItem1: TMenuItem;
    mnuFileExit: TMenuItem;
    actFileExit: TFileExit;
    txtProject: TText;

    procedure ControlDragMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
      Y: Single);
    procedure btnProjectClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure actViewProjectsExecute(Sender: TObject);


  private
    procedure SetProjectActive(const Button: TCustomButton; const Active: Boolean);
    { Private declarations }
  public
    { Public declarations }
  end;

................................................................................

{ ------------------------------------------------------------------------------------------------ }
procedure TfrmActiveProject.FormCreate(Sender: TObject);
begin
  SetProjectActive(btnProject, True);
  btnProjectClick(btnProject);
end;

















{ ------------------------------------------------------------------------------------------------ }
function FindDescendantByClass(const Control: TFmxObject; const TargetClass: TClass; const Recursive: Boolean = False; const SkipChild: TFmxObject = nil): TFmxObject;
var
  Child: TFmxObject;
begin
  for Child in Control.Children do begin
................................................................................
  end;
end;

{ ------------------------------------------------------------------------------------------------ }
procedure TfrmActiveProject.ControlDragMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
  Y: Single);
begin
  if Button = TMouseButton.mbLeft then begin
    Self.StartWindowDrag;
  end;
end;

end.







|







 







>





>
>







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







|





2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
..
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
..
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
...
175
176
177
178
179
180
181
182
183
184
185
186
187

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Rtti, System.Classes,
  System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs,
  FMX.StdCtrls, FMX.Colors, FMX.Layouts, FMX.Objects, FMX.Ani, FMX.Effects,
  System.Actions, FMX.ActnList, FMX.Menus, FMX.StdActns, FMX.Gestures;

type
  TfrmActiveProject = class(TForm)
    lytProjects: TLayout;
    btnProject: TCornerButton;
    rndrctTime: TRoundRect;
    txtTime: TText;
................................................................................
    mnuViewProjects: TMenuItem;
    aclProject: TActionList;
    actViewProjects: TAction;
    MenuItem1: TMenuItem;
    mnuFileExit: TMenuItem;
    actFileExit: TFileExit;
    txtProject: TText;
    gmActiveProject: TGestureManager;
    procedure ControlDragMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
      Y: Single);
    procedure btnProjectClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure actViewProjectsExecute(Sender: TObject);
    procedure FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo;
      var Handled: Boolean);
  private
    procedure SetProjectActive(const Button: TCustomButton; const Active: Boolean);
    { Private declarations }
  public
    { Public declarations }
  end;

................................................................................

{ ------------------------------------------------------------------------------------------------ }
procedure TfrmActiveProject.FormCreate(Sender: TObject);
begin
  SetProjectActive(btnProject, True);
  btnProjectClick(btnProject);
end;

{ ------------------------------------------------------------------------------------------------ }
procedure TfrmActiveProject.FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo;
  var Handled: Boolean);
var
  Ctl: IControl;
begin
  if EventInfo.GestureID = igiLongTap then begin
    Ctl := Self.ObjectAtPoint(EventInfo.Location);
    while Assigned(Ctl) and not Assigned(Ctl.PopupMenu) and Assigned(Ctl.Parent) do
      Ctl := Ctl.Parent as IControl;
    if Assigned(Ctl.PopupMenu) then begin
      Ctl.PopupMenu.Popup(EventInfo.Location.X, EventInfo.Location.Y);
    end;
  end;
end {TfrmActiveProject.FormGesture};

{ ------------------------------------------------------------------------------------------------ }
function FindDescendantByClass(const Control: TFmxObject; const TargetClass: TClass; const Recursive: Boolean = False; const SkipChild: TFmxObject = nil): TFmxObject;
var
  Child: TFmxObject;
begin
  for Child in Control.Children do begin
................................................................................
  end;
end;

{ ------------------------------------------------------------------------------------------------ }
procedure TfrmActiveProject.ControlDragMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X,
  Y: Single);
begin
  if (Button = TMouseButton.mbLeft) and (ssAlt in Shift) then begin
    Self.StartWindowDrag;
  end;
end;

end.

Changes to ProjectIt/src/prj/ProjectIt.dproj.

98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
...
205
206
207
208
209
210
211
212
213


214
215
216
217



218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
        <DCC_DebugDCUs>true</DCC_DebugDCUs>
        <DCC_Optimize>false</DCC_Optimize>
        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
        <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
        <DCC_RemoteDebug>true</DCC_RemoteDebug>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_1_OSX32)'!=''">
        <VerInfo_Build>1</VerInfo_Build>
        <VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.1;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities</VerInfo_Keys>
        <BT_BuildType>Debug</BT_BuildType>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
        <VerInfo_Build>1</VerInfo_Build>
        <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.1;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
        <VerInfo_Locale>1033</VerInfo_Locale>
        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
        <DCC_RemoteDebug>false</DCC_RemoteDebug>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
        <VerInfo_Build>2</VerInfo_Build>
        <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.2;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
        <VerInfo_Locale>1033</VerInfo_Locale>
        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_2)'!=''">
        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
................................................................................
            </Delphi.Personality>
            <Deployment>
                <DeployFile LocalName="..\..\out\OSX32\Debug\ProjectIt.entitlements" Configuration="Debug" Class="ProjectOSXEntitlements">
                    <Platform Name="OSX32">
                        <RemoteName>Entitlements.plist</RemoteName>
                    </Platform>
                </DeployFile>
                <DeployFile LocalName="..\..\out\OSX32\Debug\ProjectIt" Configuration="Debug" Class="ProjectOutput">
                    <Platform Name="OSX32"/>


                </DeployFile>
                <DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
                    <Platform Name="OSX32"/>
                    <Platform Name="iOSSimulator"/>



                </DeployFile>
                <DeployFile LocalName="..\..\out\OSX32\Debug\ProjectIt.rsm" Configuration="Debug" Class="DebugSymbols">
                    <Platform Name="OSX32">
                        <RemoteDir>Contents\MacOS\</RemoteDir>
                        <RemoteName>ProjectIt.rsm</RemoteName>
                    </Platform>
                </DeployFile>
                <DeployFile LocalName="$(BDS)\bin\delphi_PROJECTICNS.icns" Configuration="Debug" Class="ProjectOSXResource">
                    <Platform Name="OSX32">
                        <RemoteName>ProjectIt.icns</RemoteName>
                    </Platform>
                </DeployFile>
                <DeployFile LocalName="..\..\out\OSX32\Debug\ProjectIt.info.plist" Configuration="Debug" Class="ProjectOSXInfoPList">
                    <Platform Name="OSX32">
                        <RemoteName>Info.plist</RemoteName>
                    </Platform>
                </DeployFile>
                <DeployClass Required="true" Name="DependencyPackage">
                    <Platform Name="iOSDevice">







|
|










|
|







 







|
|
>
>




>
>
>







<
<
<
<
<







98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
...
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229





230
231
232
233
234
235
236
        <DCC_DebugDCUs>true</DCC_DebugDCUs>
        <DCC_Optimize>false</DCC_Optimize>
        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
        <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
        <DCC_RemoteDebug>true</DCC_RemoteDebug>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_1_OSX32)'!=''">
        <VerInfo_Build>5</VerInfo_Build>
        <VerInfo_Keys>CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.5;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities</VerInfo_Keys>
        <BT_BuildType>Debug</BT_BuildType>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
        <VerInfo_Build>1</VerInfo_Build>
        <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.1;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
        <VerInfo_Locale>1033</VerInfo_Locale>
        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
        <DCC_RemoteDebug>false</DCC_RemoteDebug>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
        <VerInfo_Build>3</VerInfo_Build>
        <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.3;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
        <VerInfo_Locale>1033</VerInfo_Locale>
        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_2)'!=''">
        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
................................................................................
            </Delphi.Personality>
            <Deployment>
                <DeployFile LocalName="..\..\out\OSX32\Debug\ProjectIt.entitlements" Configuration="Debug" Class="ProjectOSXEntitlements">
                    <Platform Name="OSX32">
                        <RemoteName>Entitlements.plist</RemoteName>
                    </Platform>
                </DeployFile>
                <DeployFile LocalName="$(BDS)\bin\delphi_PROJECTICNS.icns" Configuration="Debug" Class="ProjectOSXResource">
                    <Platform Name="OSX32">
                        <RemoteName>ProjectIt.icns</RemoteName>
                    </Platform>
                </DeployFile>
                <DeployFile LocalName="$(BDS)\Redist\osx32\libcgunwind.1.0.dylib" Class="DependencyModule">
                    <Platform Name="OSX32"/>
                    <Platform Name="iOSSimulator"/>
                </DeployFile>
                <DeployFile LocalName="..\..\out\OSX32\Debug\ProjectIt" Configuration="Debug" Class="ProjectOutput">
                    <Platform Name="OSX32"/>
                </DeployFile>
                <DeployFile LocalName="..\..\out\OSX32\Debug\ProjectIt.rsm" Configuration="Debug" Class="DebugSymbols">
                    <Platform Name="OSX32">
                        <RemoteDir>Contents\MacOS\</RemoteDir>
                        <RemoteName>ProjectIt.rsm</RemoteName>
                    </Platform>
                </DeployFile>





                <DeployFile LocalName="..\..\out\OSX32\Debug\ProjectIt.info.plist" Configuration="Debug" Class="ProjectOSXInfoPList">
                    <Platform Name="OSX32">
                        <RemoteName>Info.plist</RemoteName>
                    </Platform>
                </DeployFile>
                <DeployClass Required="true" Name="DependencyPackage">
                    <Platform Name="iOSDevice">

Changes to ProjectIt/src/prj/ProjectIt.res.

cannot compute difference between binary files