PoshCode Archive  Hex Artifact Content

Artifact 4d8b0987a87dee10b93d9f6ab1e2dd740f1c520115adf13b3dae78e786b04b2c:

  • File egg_timer.ps1 — part of check-in [293d71f40a] at 2018-06-10 14:12:48 on branch trunk — A script I submitted for Event 10 of the Scripting games. Displays a simple Windows Form that counts down three minutes. It makes a good example for using Windows forms. (user: tojo2000 size: 5576)

0000: 23 20 65 6e 63 6f 64 69 6e 67 3a 20 61 73 63 69  # encoding: asci
0010: 69 0d 0a 23 20 61 70 69 3a 20 70 6f 77 65 72 73  i..# api: powers
0020: 68 65 6c 6c 0d 0a 23 20 74 69 74 6c 65 3a 20 65  hell..# title: e
0030: 67 67 5f 74 69 6d 65 72 0d 0a 23 20 64 65 73 63  gg_timer..# desc
0040: 72 69 70 74 69 6f 6e 3a 20 41 20 73 63 72 69 70  ription: A scrip
0050: 74 20 49 20 73 75 62 6d 69 74 74 65 64 20 66 6f  t I submitted fo
0060: 72 20 45 76 65 6e 74 20 31 30 20 6f 66 20 74 68  r Event 10 of th
0070: 65 20 53 63 72 69 70 74 69 6e 67 20 67 61 6d 65  e Scripting game
0080: 73 2e 20 20 44 69 73 70 6c 61 79 73 20 61 20 73  s.  Displays a s
0090: 69 6d 70 6c 65 20 57 69 6e 64 6f 77 73 20 46 6f  imple Windows Fo
00a0: 72 6d 20 74 68 61 74 20 63 6f 75 6e 74 73 20 64  rm that counts d
00b0: 6f 77 6e 20 74 68 72 65 65 20 6d 69 6e 75 74 65  own three minute
00c0: 73 2e 20 20 49 74 20 6d 61 6b 65 73 20 61 20 67  s.  It makes a g
00d0: 6f 6f 64 20 65 78 61 6d 70 6c 65 20 66 6f 72 20  ood example for 
00e0: 75 73 69 6e 67 20 57 69 6e 64 6f 77 73 20 66 6f  using Windows fo
00f0: 72 6d 73 2e 0d 0a 23 20 76 65 72 73 69 6f 6e 3a  rms...# version:
0100: 20 32 30 2e 32 35 0d 0a 23 20 74 79 70 65 3a 20   20.25..# type: 
0110: 66 75 6e 63 74 69 6f 6e 0d 0a 23 20 61 75 74 68  function..# auth
0120: 6f 72 3a 20 74 6f 6a 6f 32 30 30 30 0d 0a 23 20  or: tojo2000..# 
0130: 6c 69 63 65 6e 73 65 3a 20 43 43 30 0d 0a 23 20  license: CC0..# 
0140: 78 2d 70 6f 73 68 63 6f 64 65 2d 69 64 3a 20 36  x-poshcode-id: 6
0150: 33 31 31 0d 0a 23 20 78 2d 61 72 63 68 69 76 65  311..# x-archive
0160: 64 3a 20 32 30 31 36 2d 31 30 2d 31 38 54 31 31  d: 2016-10-18T11
0170: 3a 30 35 3a 34 31 0d 0a 23 20 78 2d 70 75 62 6c  :05:41..# x-publ
0180: 69 73 68 65 64 3a 20 32 30 31 36 2d 30 34 2d 32  ished: 2016-04-2
0190: 31 54 31 39 3a 30 36 3a 30 30 0d 0a 23 0d 0a 23  1T19:06:00..#..#
01a0: 0d 0a 66 75 6e 63 74 69 6f 6e 20 47 65 6e 65 72  ..function Gener
01b0: 61 74 65 46 6f 72 6d 20 7b 0d 0a 20 20 5b 72 65  ateForm {..  [re
01c0: 66 6c 65 63 74 69 6f 6e 2e 61 73 73 65 6d 62 6c  flection.assembl
01d0: 79 5d 3a 3a 6c 6f 61 64 77 69 74 68 70 61 72 74  y]::loadwithpart
01e0: 69 61 6c 6e 61 6d 65 28 22 53 79 73 74 65 6d 2e  ialname("System.
01f0: 57 69 6e 64 6f 77 73 2e 46 6f 72 6d 73 22 29 20  Windows.Forms") 
0200: 7c 20 4f 75 74 2d 4e 75 6c 6c 0d 0a 20 20 5b 72  | Out-Null..  [r
0210: 65 66 6c 65 63 74 69 6f 6e 2e 61 73 73 65 6d 62  eflection.assemb
0220: 6c 79 5d 3a 3a 6c 6f 61 64 77 69 74 68 70 61 72  ly]::loadwithpar
0230: 74 69 61 6c 6e 61 6d 65 28 22 53 79 73 74 65 6d  tialname("System
0240: 2e 44 72 61 77 69 6e 67 22 29 20 7c 20 4f 75 74  .Drawing") | Out
0250: 2d 4e 75 6c 6c 0d 0a 0d 0a 20 20 24 66 6f 72 6d  -Null....  $form
0260: 5f 6d 61 69 6e 20 3d 20 4e 65 77 2d 4f 62 6a 65  _main = New-Obje
0270: 63 74 20 53 79 73 74 65 6d 2e 57 69 6e 64 6f 77  ct System.Window
0280: 73 2e 46 6f 72 6d 73 2e 46 6f 72 6d 0d 0a 20 20  s.Forms.Form..  
0290: 24 72 65 73 65 74 5f 62 75 74 74 6f 6e 20 3d 20  $reset_button = 
02a0: 4e 65 77 2d 4f 62 6a 65 63 74 20 53 79 73 74 65  New-Object Syste
02b0: 6d 2e 57 69 6e 64 6f 77 73 2e 46 6f 72 6d 73 2e  m.Windows.Forms.
02c0: 42 75 74 74 6f 6e 0d 0a 20 20 24 6c 61 62 65 6c  Button..  $label
02d0: 31 20 3d 20 4e 65 77 2d 4f 62 6a 65 63 74 20 53  1 = New-Object S
02e0: 79 73 74 65 6d 2e 57 69 6e 64 6f 77 73 2e 46 6f  ystem.Windows.Fo
02f0: 72 6d 73 2e 4c 61 62 65 6c 0d 0a 20 20 24 73 74  rms.Label..  $st
0300: 61 72 74 5f 62 75 74 74 6f 6e 20 3d 20 4e 65 77  art_button = New
0310: 2d 4f 62 6a 65 63 74 20 53 79 73 74 65 6d 2e 57  -Object System.W
0320: 69 6e 64 6f 77 73 2e 46 6f 72 6d 73 2e 42 75 74  indows.Forms.But
0330: 74 6f 6e 0d 0a 20 20 24 70 72 6f 67 72 65 73 73  ton..  $progress
0340: 42 61 72 31 20 3d 20 4e 65 77 2d 4f 62 6a 65 63  Bar1 = New-Objec
0350: 74 20 53 79 73 74 65 6d 2e 57 69 6e 64 6f 77 73  t System.Windows
0360: 2e 46 6f 72 6d 73 2e 50 72 6f 67 72 65 73 73 42  .Forms.ProgressB
0370: 61 72 0d 0a 20 20 24 74 69 6d 65 72 31 20 3d 20  ar..  $timer1 = 
0380: 4e 65 77 2d 4f 62 6a 65 63 74 20 53 79 73 74 65  New-Object Syste
0390: 6d 2e 57 69 6e 64 6f 77 73 2e 46 6f 72 6d 73 2e  m.Windows.Forms.
03a0: 54 69 6d 65 72 0d 0a 20 20 24 49 6e 69 74 69 61  Timer..  $Initia
03b0: 6c 46 6f 72 6d 57 69 6e 64 6f 77 53 74 61 74 65  lFormWindowState
03c0: 20 3d 20 4e 65 77 2d 4f 62 6a 65 63 74 20 53 79   = New-Object Sy
03d0: 73 74 65 6d 2e 57 69 6e 64 6f 77 73 2e 46 6f 72  stem.Windows.For
03e0: 6d 73 2e 46 6f 72 6d 57 69 6e 64 6f 77 53 74 61  ms.FormWindowSta
03f0: 74 65 0d 0a 0d 0a 20 20 24 73 74 61 72 74 5f 62  te....  $start_b
0400: 75 74 74 6f 6e 5f 4f 6e 43 6c 69 63 6b 20 3d 20  utton_OnClick = 
0410: 7b 0d 0a 20 20 20 20 24 74 69 6d 65 72 31 2e 45  {..    $timer1.E
0420: 6e 61 62 6c 65 64 20 3d 20 24 74 72 75 65 0d 0a  nabled = $true..
0430: 20 20 20 20 24 74 69 6d 65 72 31 2e 53 74 61 72      $timer1.Star
0440: 74 28 29 0d 0a 20 20 20 20 24 73 74 61 72 74 5f  t()..    $start_
0450: 62 75 74 74 6f 6e 2e 54 65 78 74 20 3d 20 27 43  button.Text = 'C
0460: 6f 75 6e 74 64 6f 77 6e 20 53 74 61 72 74 65 64  ountdown Started
0470: 2e 27 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 24 72 65  .'..  }....  $re
0480: 73 65 74 5f 62 75 74 74 6f 6e 5f 4f 6e 43 6c 69  set_button_OnCli
0490: 63 6b 20 3d 20 7b 0d 0a 20 20 20 20 24 74 69 6d  ck = {..    $tim
04a0: 65 72 31 2e 45 6e 61 62 6c 65 64 20 3d 20 24 66  er1.Enabled = $f
04b0: 61 6c 73 65 0d 0a 20 20 20 20 24 70 72 6f 67 72  alse..    $progr
04c0: 65 73 73 42 61 72 31 2e 56 61 6c 75 65 20 3d 20  essBar1.Value = 
04d0: 30 0d 0a 20 20 20 20 24 73 74 61 72 74 5f 62 75  0..    $start_bu
04e0: 74 74 6f 6e 2e 54 65 78 74 20 3d 20 27 53 74 61  tton.Text = 'Sta
04f0: 72 74 27 0d 0a 09 24 6c 61 62 65 6c 31 2e 54 65  rt'...$label1.Te
0500: 78 74 20 3d 20 27 33 3a 30 30 27 0d 0a 20 20 7d  xt = '3:00'..  }
0510: 0d 0a 0d 0a 20 20 24 74 69 6d 65 72 31 5f 4f 6e  ....  $timer1_On
0520: 54 69 63 6b 20 3d 20 7b 0d 0a 20 20 20 20 24 70  Tick = {..    $p
0530: 72 6f 67 72 65 73 73 42 61 72 31 2e 50 65 72 66  rogressBar1.Perf
0540: 6f 72 6d 53 74 65 70 28 29 0d 0a 0d 0a 20 20 20  ormStep()....   
0550: 20 24 74 69 6d 65 20 3d 20 31 38 30 20 2d 20 24   $time = 180 - $
0560: 70 72 6f 67 72 65 73 73 42 61 72 31 2e 56 61 6c  progressBar1.Val
0570: 75 65 0d 0a 20 20 20 20 5b 63 68 61 72 5b 5d 5d  ue..    [char[]]
0580: 24 6d 69 6e 73 20 3d 20 22 7b 30 7d 22 20 2d 66  $mins = "{0}" -f
0590: 20 28 24 74 69 6d 65 20 2f 20 36 30 29 0d 0a 20   ($time / 60).. 
05a0: 20 20 20 24 73 65 63 73 20 3d 20 22 7b 30 3a 30     $secs = "{0:0
05b0: 30 7d 22 20 2d 66 20 28 24 74 69 6d 65 20 25 20  0}" -f ($time % 
05c0: 36 30 29 0d 0a 0d 0a 20 20 20 20 24 6c 61 62 65  60)....    $labe
05d0: 6c 31 2e 54 65 78 74 20 3d 20 22 7b 30 7d 3a 7b  l1.Text = "{0}:{
05e0: 31 7d 22 20 2d 66 20 24 6d 69 6e 73 5b 30 5d 2c  1}" -f $mins[0],
05f0: 20 24 73 65 63 73 0d 0a 20 20 0d 0a 20 20 20 20   $secs..  ..    
0600: 69 66 20 28 24 70 72 6f 67 72 65 73 73 42 61 72  if ($progressBar
0610: 31 2e 56 61 6c 75 65 20 2d 65 71 20 24 70 72 6f  1.Value -eq $pro
0620: 67 72 65 73 73 42 61 72 31 2e 4d 61 78 69 6d 75  gressBar1.Maximu
0630: 6d 29 20 7b 0d 0a 20 20 20 20 20 20 24 74 69 6d  m) {..      $tim
0640: 65 72 31 2e 45 6e 61 62 6c 65 64 20 3d 20 24 66  er1.Enabled = $f
0650: 61 6c 73 65 0d 0a 20 20 20 20 20 20 24 73 74 61  alse..      $sta
0660: 72 74 5f 62 75 74 74 6f 6e 2e 54 65 78 74 20 3d  rt_button.Text =
0670: 20 27 46 49 4e 49 53 48 45 44 21 27 0d 0a 20 20   'FINISHED!'..  
0680: 20 20 7d 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 24 4f    }..  }....  $O
0690: 6e 4c 6f 61 64 46 6f 72 6d 5f 53 74 61 74 65 43  nLoadForm_StateC
06a0: 6f 72 72 65 63 74 69 6f 6e 20 3d 20 7b 0d 0a 20  orrection = {.. 
06b0: 20 23 43 6f 72 72 65 63 74 20 74 68 65 20 69 6e   #Correct the in
06c0: 69 74 69 61 6c 20 73 74 61 74 65 20 6f 66 20 74  itial state of t
06d0: 68 65 20 66 6f 72 6d 20 74 6f 20 70 72 65 76 65  he form to preve
06e0: 6e 74 20 74 68 65 20 2e 4e 65 74 20 6d 61 78 69  nt the .Net maxi
06f0: 6d 69 7a 65 64 20 66 6f 72 6d 20 69 73 73 75 65  mized form issue
0700: 0d 0a 20 20 24 66 6f 72 6d 5f 6d 61 69 6e 2e 57  ..  $form_main.W
0710: 69 6e 64 6f 77 53 74 61 74 65 20 3d 20 24 49 6e  indowState = $In
0720: 69 74 69 61 6c 46 6f 72 6d 57 69 6e 64 6f 77 53  itialFormWindowS
0730: 74 61 74 65 0d 0a 20 20 7d 0d 0a 0d 0a 20 20 24  tate..  }....  $
0740: 53 79 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f 53  System_Drawing_S
0750: 69 7a 65 20 3d 20 4e 65 77 2d 4f 62 6a 65 63 74  ize = New-Object
0760: 20 53 79 73 74 65 6d 2e 44 72 61 77 69 6e 67 2e   System.Drawing.
0770: 53 69 7a 65 0d 0a 20 20 24 53 79 73 74 65 6d 5f  Size..  $System_
0780: 44 72 61 77 69 6e 67 5f 53 69 7a 65 2e 57 69 64  Drawing_Size.Wid
0790: 74 68 20 3d 20 36 32 38 0d 0a 20 20 24 53 79 73  th = 628..  $Sys
07a0: 74 65 6d 5f 44 72 61 77 69 6e 67 5f 53 69 7a 65  tem_Drawing_Size
07b0: 2e 48 65 69 67 68 74 20 3d 20 32 39 35 0d 0a 20  .Height = 295.. 
07c0: 20 24 66 6f 72 6d 5f 6d 61 69 6e 2e 4d 61 78 69   $form_main.Maxi
07d0: 6d 75 6d 53 69 7a 65 20 3d 20 24 53 79 73 74 65  mumSize = $Syste
07e0: 6d 5f 44 72 61 77 69 6e 67 5f 53 69 7a 65 0d 0a  m_Drawing_Size..
07f0: 0d 0a 20 20 24 66 6f 72 6d 5f 6d 61 69 6e 2e 54  ..  $form_main.T
0800: 65 78 74 20 3d 20 27 53 75 70 65 72 20 44 75 70  ext = 'Super Dup
0810: 65 72 20 4f 76 65 72 2d 65 6e 67 69 6e 65 65 72  er Over-engineer
0820: 65 64 20 45 67 67 20 54 69 6d 65 72 27 0d 0a 20  ed Egg Timer'.. 
0830: 20 24 66 6f 72 6d 5f 6d 61 69 6e 2e 4d 61 78 69   $form_main.Maxi
0840: 6d 69 7a 65 42 6f 78 20 3d 20 24 46 61 6c 73 65  mizeBox = $False
0850: 0d 0a 20 20 24 66 6f 72 6d 5f 6d 61 69 6e 2e 4e  ..  $form_main.N
0860: 61 6d 65 20 3d 20 27 66 6f 72 6d 5f 6d 61 69 6e  ame = 'form_main
0870: 27 0d 0a 20 20 24 66 6f 72 6d 5f 6d 61 69 6e 2e  '..  $form_main.
0880: 53 68 6f 77 49 63 6f 6e 20 3d 20 24 46 61 6c 73  ShowIcon = $Fals
0890: 65 0d 0a 20 20 24 53 79 73 74 65 6d 5f 44 72 61  e..  $System_Dra
08a0: 77 69 6e 67 5f 53 69 7a 65 20 3d 20 4e 65 77 2d  wing_Size = New-
08b0: 4f 62 6a 65 63 74 20 53 79 73 74 65 6d 2e 44 72  Object System.Dr
08c0: 61 77 69 6e 67 2e 53 69 7a 65 0d 0a 20 20 24 53  awing.Size..  $S
08d0: 79 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f 53 69  ystem_Drawing_Si
08e0: 7a 65 2e 57 69 64 74 68 20 3d 20 36 32 38 0d 0a  ze.Width = 628..
08f0: 20 20 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e    $System_Drawin
0900: 67 5f 53 69 7a 65 2e 48 65 69 67 68 74 20 3d 20  g_Size.Height = 
0910: 32 39 35 0d 0a 20 20 24 66 6f 72 6d 5f 6d 61 69  295..  $form_mai
0920: 6e 2e 4d 69 6e 69 6d 75 6d 53 69 7a 65 20 3d 20  n.MinimumSize = 
0930: 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f  $System_Drawing_
0940: 53 69 7a 65 0d 0a 20 20 24 66 6f 72 6d 5f 6d 61  Size..  $form_ma
0950: 69 6e 2e 53 74 61 72 74 50 6f 73 69 74 69 6f 6e  in.StartPosition
0960: 20 3d 20 31 0d 0a 20 20 24 66 6f 72 6d 5f 6d 61   = 1..  $form_ma
0970: 69 6e 2e 44 61 74 61 42 69 6e 64 69 6e 67 73 2e  in.DataBindings.
0980: 44 65 66 61 75 6c 74 44 61 74 61 53 6f 75 72 63  DefaultDataSourc
0990: 65 55 70 64 61 74 65 4d 6f 64 65 20 3d 20 30 0d  eUpdateMode = 0.
09a0: 0a 20 20 24 53 79 73 74 65 6d 5f 44 72 61 77 69  .  $System_Drawi
09b0: 6e 67 5f 53 69 7a 65 20 3d 20 4e 65 77 2d 4f 62  ng_Size = New-Ob
09c0: 6a 65 63 74 20 53 79 73 74 65 6d 2e 44 72 61 77  ject System.Draw
09d0: 69 6e 67 2e 53 69 7a 65 0d 0a 20 20 24 53 79 73  ing.Size..  $Sys
09e0: 74 65 6d 5f 44 72 61 77 69 6e 67 5f 53 69 7a 65  tem_Drawing_Size
09f0: 2e 57 69 64 74 68 20 3d 20 36 31 32 0d 0a 20 20  .Width = 612..  
0a00: 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f  $System_Drawing_
0a10: 53 69 7a 65 2e 48 65 69 67 68 74 20 3d 20 32 35  Size.Height = 25
0a20: 39 0d 0a 20 20 24 66 6f 72 6d 5f 6d 61 69 6e 2e  9..  $form_main.
0a30: 43 6c 69 65 6e 74 53 69 7a 65 20 3d 20 24 53 79  ClientSize = $Sy
0a40: 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f 53 69 7a  stem_Drawing_Siz
0a50: 65 0d 0a 0d 0a 20 20 24 72 65 73 65 74 5f 62 75  e....  $reset_bu
0a60: 74 74 6f 6e 2e 54 61 62 49 6e 64 65 78 20 3d 20  tton.TabIndex = 
0a70: 34 0d 0a 20 20 24 72 65 73 65 74 5f 62 75 74 74  4..  $reset_butt
0a80: 6f 6e 2e 4e 61 6d 65 20 3d 20 27 62 75 74 74 6f  on.Name = 'butto
0a90: 6e 32 27 0d 0a 20 20 24 53 79 73 74 65 6d 5f 44  n2'..  $System_D
0aa0: 72 61 77 69 6e 67 5f 53 69 7a 65 20 3d 20 4e 65  rawing_Size = Ne
0ab0: 77 2d 4f 62 6a 65 63 74 20 53 79 73 74 65 6d 2e  w-Object System.
0ac0: 44 72 61 77 69 6e 67 2e 53 69 7a 65 0d 0a 20 20  Drawing.Size..  
0ad0: 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f  $System_Drawing_
0ae0: 53 69 7a 65 2e 57 69 64 74 68 20 3d 20 32 30 39  Size.Width = 209
0af0: 0d 0a 20 20 24 53 79 73 74 65 6d 5f 44 72 61 77  ..  $System_Draw
0b00: 69 6e 67 5f 53 69 7a 65 2e 48 65 69 67 68 74 20  ing_Size.Height 
0b10: 3d 20 36 39 0d 0a 20 20 24 72 65 73 65 74 5f 62  = 69..  $reset_b
0b20: 75 74 74 6f 6e 2e 53 69 7a 65 20 3d 20 24 53 79  utton.Size = $Sy
0b30: 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f 53 69 7a  stem_Drawing_Siz
0b40: 65 0d 0a 20 20 24 72 65 73 65 74 5f 62 75 74 74  e..  $reset_butt
0b50: 6f 6e 2e 55 73 65 56 69 73 75 61 6c 53 74 79 6c  on.UseVisualStyl
0b60: 65 42 61 63 6b 43 6f 6c 6f 72 20 3d 20 24 54 72  eBackColor = $Tr
0b70: 75 65 0d 0a 0d 0a 20 20 24 72 65 73 65 74 5f 62  ue....  $reset_b
0b80: 75 74 74 6f 6e 2e 54 65 78 74 20 3d 20 27 52 65  utton.Text = 'Re
0b90: 73 65 74 27 0d 0a 20 20 24 72 65 73 65 74 5f 62  set'..  $reset_b
0ba0: 75 74 74 6f 6e 2e 46 6f 6e 74 20 3d 20 4e 65 77  utton.Font = New
0bb0: 2d 4f 62 6a 65 63 74 20 53 79 73 74 65 6d 2e 44  -Object System.D
0bc0: 72 61 77 69 6e 67 2e 46 6f 6e 74 28 22 56 65 72  rawing.Font("Ver
0bd0: 64 61 6e 61 22 2c 31 32 2c 30 2c 33 2c 30 29 0d  dana",12,0,3,0).
0be0: 0a 0d 0a 20 20 24 53 79 73 74 65 6d 5f 44 72 61  ...  $System_Dra
0bf0: 77 69 6e 67 5f 50 6f 69 6e 74 20 3d 20 4e 65 77  wing_Point = New
0c00: 2d 4f 62 6a 65 63 74 20 53 79 73 74 65 6d 2e 44  -Object System.D
0c10: 72 61 77 69 6e 67 2e 50 6f 69 6e 74 0d 0a 20 20  rawing.Point..  
0c20: 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f  $System_Drawing_
0c30: 50 6f 69 6e 74 2e 58 20 3d 20 33 36 32 0d 0a 20  Point.X = 362.. 
0c40: 20 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e 67   $System_Drawing
0c50: 5f 50 6f 69 6e 74 2e 59 20 3d 20 31 33 0d 0a 20  _Point.Y = 13.. 
0c60: 20 24 72 65 73 65 74 5f 62 75 74 74 6f 6e 2e 4c   $reset_button.L
0c70: 6f 63 61 74 69 6f 6e 20 3d 20 24 53 79 73 74 65  ocation = $Syste
0c80: 6d 5f 44 72 61 77 69 6e 67 5f 50 6f 69 6e 74 0d  m_Drawing_Point.
0c90: 0a 20 20 24 72 65 73 65 74 5f 62 75 74 74 6f 6e  .  $reset_button
0ca0: 2e 44 61 74 61 42 69 6e 64 69 6e 67 73 2e 44 65  .DataBindings.De
0cb0: 66 61 75 6c 74 44 61 74 61 53 6f 75 72 63 65 55  faultDataSourceU
0cc0: 70 64 61 74 65 4d 6f 64 65 20 3d 20 30 0d 0a 20  pdateMode = 0.. 
0cd0: 20 24 72 65 73 65 74 5f 62 75 74 74 6f 6e 2e 61   $reset_button.a
0ce0: 64 64 5f 43 6c 69 63 6b 28 24 72 65 73 65 74 5f  dd_Click($reset_
0cf0: 62 75 74 74 6f 6e 5f 4f 6e 43 6c 69 63 6b 29 0d  button_OnClick).
0d00: 0a 0d 0a 20 20 24 66 6f 72 6d 5f 6d 61 69 6e 2e  ...  $form_main.
0d10: 43 6f 6e 74 72 6f 6c 73 2e 41 64 64 28 24 72 65  Controls.Add($re
0d20: 73 65 74 5f 62 75 74 74 6f 6e 29 0d 0a 0d 0a 20  set_button).... 
0d30: 20 24 6c 61 62 65 6c 31 2e 54 61 62 49 6e 64 65   $label1.TabInde
0d40: 78 20 3d 20 33 0d 0a 20 20 24 6c 61 62 65 6c 31  x = 3..  $label1
0d50: 2e 54 65 78 74 41 6c 69 67 6e 20 3d 20 33 32 0d  .TextAlign = 32.
0d60: 0a 20 20 24 53 79 73 74 65 6d 5f 44 72 61 77 69  .  $System_Drawi
0d70: 6e 67 5f 53 69 7a 65 20 3d 20 4e 65 77 2d 4f 62  ng_Size = New-Ob
0d80: 6a 65 63 74 20 53 79 73 74 65 6d 2e 44 72 61 77  ject System.Draw
0d90: 69 6e 67 2e 53 69 7a 65 0d 0a 20 20 24 53 79 73  ing.Size..  $Sys
0da0: 74 65 6d 5f 44 72 61 77 69 6e 67 5f 53 69 7a 65  tem_Drawing_Size
0db0: 2e 57 69 64 74 68 20 3d 20 35 32 36 0d 0a 20 20  .Width = 526..  
0dc0: 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f  $System_Drawing_
0dd0: 53 69 7a 65 2e 48 65 69 67 68 74 20 3d 20 35 34  Size.Height = 54
0de0: 0d 0a 20 20 24 6c 61 62 65 6c 31 2e 53 69 7a 65  ..  $label1.Size
0df0: 20 3d 20 24 53 79 73 74 65 6d 5f 44 72 61 77 69   = $System_Drawi
0e00: 6e 67 5f 53 69 7a 65 0d 0a 20 20 24 6c 61 62 65  ng_Size..  $labe
0e10: 6c 31 2e 54 65 78 74 20 3d 20 27 33 3a 30 30 27  l1.Text = '3:00'
0e20: 0d 0a 20 20 24 6c 61 62 65 6c 31 2e 46 6f 6e 74  ..  $label1.Font
0e30: 20 3d 20 4e 65 77 2d 4f 62 6a 65 63 74 20 53 79   = New-Object Sy
0e40: 73 74 65 6d 2e 44 72 61 77 69 6e 67 2e 46 6f 6e  stem.Drawing.Fon
0e50: 74 28 22 43 6f 75 72 69 65 72 20 4e 65 77 22 2c  t("Courier New",
0e60: 32 30 2e 32 35 2c 31 2c 33 2c 30 29 0d 0a 0d 0a  20.25,1,3,0)....
0e70: 20 20 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e    $System_Drawin
0e80: 67 5f 50 6f 69 6e 74 20 3d 20 4e 65 77 2d 4f 62  g_Point = New-Ob
0e90: 6a 65 63 74 20 53 79 73 74 65 6d 2e 44 72 61 77  ject System.Draw
0ea0: 69 6e 67 2e 50 6f 69 6e 74 0d 0a 20 20 24 53 79  ing.Point..  $Sy
0eb0: 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f 50 6f 69  stem_Drawing_Poi
0ec0: 6e 74 2e 58 20 3d 20 34 35 0d 0a 20 20 24 53 79  nt.X = 45..  $Sy
0ed0: 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f 50 6f 69  stem_Drawing_Poi
0ee0: 6e 74 2e 59 20 3d 20 38 39 0d 0a 20 20 24 6c 61  nt.Y = 89..  $la
0ef0: 62 65 6c 31 2e 4c 6f 63 61 74 69 6f 6e 20 3d 20  bel1.Location = 
0f00: 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f  $System_Drawing_
0f10: 50 6f 69 6e 74 0d 0a 20 20 24 6c 61 62 65 6c 31  Point..  $label1
0f20: 2e 44 61 74 61 42 69 6e 64 69 6e 67 73 2e 44 65  .DataBindings.De
0f30: 66 61 75 6c 74 44 61 74 61 53 6f 75 72 63 65 55  faultDataSourceU
0f40: 70 64 61 74 65 4d 6f 64 65 20 3d 20 30 0d 0a 20  pdateMode = 0.. 
0f50: 20 24 6c 61 62 65 6c 31 2e 4e 61 6d 65 20 3d 20   $label1.Name = 
0f60: 27 6c 61 62 65 6c 31 27 0d 0a 0d 0a 20 20 24 66  'label1'....  $f
0f70: 6f 72 6d 5f 6d 61 69 6e 2e 43 6f 6e 74 72 6f 6c  orm_main.Control
0f80: 73 2e 41 64 64 28 24 6c 61 62 65 6c 31 29 0d 0a  s.Add($label1)..
0f90: 0d 0a 20 20 24 73 74 61 72 74 5f 62 75 74 74 6f  ..  $start_butto
0fa0: 6e 2e 54 61 62 49 6e 64 65 78 20 3d 20 32 0d 0a  n.TabIndex = 2..
0fb0: 20 20 24 73 74 61 72 74 5f 62 75 74 74 6f 6e 2e    $start_button.
0fc0: 4e 61 6d 65 20 3d 20 27 62 75 74 74 6f 6e 31 27  Name = 'button1'
0fd0: 0d 0a 20 20 24 53 79 73 74 65 6d 5f 44 72 61 77  ..  $System_Draw
0fe0: 69 6e 67 5f 53 69 7a 65 20 3d 20 4e 65 77 2d 4f  ing_Size = New-O
0ff0: 62 6a 65 63 74 20 53 79 73 74 65 6d 2e 44 72 61  bject System.Dra
1000: 77 69 6e 67 2e 53 69 7a 65 0d 0a 20 20 24 53 79  wing.Size..  $Sy
1010: 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f 53 69 7a  stem_Drawing_Siz
1020: 65 2e 57 69 64 74 68 20 3d 20 33 31 30 0d 0a 20  e.Width = 310.. 
1030: 20 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e 67   $System_Drawing
1040: 5f 53 69 7a 65 2e 48 65 69 67 68 74 20 3d 20 37  _Size.Height = 7
1050: 30 0d 0a 20 20 24 73 74 61 72 74 5f 62 75 74 74  0..  $start_butt
1060: 6f 6e 2e 53 69 7a 65 20 3d 20 24 53 79 73 74 65  on.Size = $Syste
1070: 6d 5f 44 72 61 77 69 6e 67 5f 53 69 7a 65 0d 0a  m_Drawing_Size..
1080: 20 20 24 73 74 61 72 74 5f 62 75 74 74 6f 6e 2e    $start_button.
1090: 55 73 65 56 69 73 75 61 6c 53 74 79 6c 65 42 61  UseVisualStyleBa
10a0: 63 6b 43 6f 6c 6f 72 20 3d 20 24 54 72 75 65 0d  ckColor = $True.
10b0: 0a 0d 0a 20 20 24 73 74 61 72 74 5f 62 75 74 74  ...  $start_butt
10c0: 6f 6e 2e 54 65 78 74 20 3d 20 27 53 74 61 72 74  on.Text = 'Start
10d0: 27 0d 0a 20 20 24 73 74 61 72 74 5f 62 75 74 74  '..  $start_butt
10e0: 6f 6e 2e 46 6f 6e 74 20 3d 20 4e 65 77 2d 4f 62  on.Font = New-Ob
10f0: 6a 65 63 74 20 53 79 73 74 65 6d 2e 44 72 61 77  ject System.Draw
1100: 69 6e 67 2e 46 6f 6e 74 28 22 56 65 72 64 61 6e  ing.Font("Verdan
1110: 61 22 2c 31 32 2c 30 2c 33 2c 30 29 0d 0a 0d 0a  a",12,0,3,0)....
1120: 20 20 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e    $System_Drawin
1130: 67 5f 50 6f 69 6e 74 20 3d 20 4e 65 77 2d 4f 62  g_Point = New-Ob
1140: 6a 65 63 74 20 53 79 73 74 65 6d 2e 44 72 61 77  ject System.Draw
1150: 69 6e 67 2e 50 6f 69 6e 74 0d 0a 20 20 24 53 79  ing.Point..  $Sy
1160: 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f 50 6f 69  stem_Drawing_Poi
1170: 6e 74 2e 58 20 3d 20 34 35 0d 0a 20 20 24 53 79  nt.X = 45..  $Sy
1180: 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f 50 6f 69  stem_Drawing_Poi
1190: 6e 74 2e 59 20 3d 20 31 32 0d 0a 20 20 24 73 74  nt.Y = 12..  $st
11a0: 61 72 74 5f 62 75 74 74 6f 6e 2e 4c 6f 63 61 74  art_button.Locat
11b0: 69 6f 6e 20 3d 20 24 53 79 73 74 65 6d 5f 44 72  ion = $System_Dr
11c0: 61 77 69 6e 67 5f 50 6f 69 6e 74 0d 0a 20 20 24  awing_Point..  $
11d0: 73 74 61 72 74 5f 62 75 74 74 6f 6e 2e 44 61 74  start_button.Dat
11e0: 61 42 69 6e 64 69 6e 67 73 2e 44 65 66 61 75 6c  aBindings.Defaul
11f0: 74 44 61 74 61 53 6f 75 72 63 65 55 70 64 61 74  tDataSourceUpdat
1200: 65 4d 6f 64 65 20 3d 20 30 0d 0a 20 20 24 73 74  eMode = 0..  $st
1210: 61 72 74 5f 62 75 74 74 6f 6e 2e 61 64 64 5f 43  art_button.add_C
1220: 6c 69 63 6b 28 24 73 74 61 72 74 5f 62 75 74 74  lick($start_butt
1230: 6f 6e 5f 4f 6e 43 6c 69 63 6b 29 0d 0a 0d 0a 20  on_OnClick).... 
1240: 20 24 66 6f 72 6d 5f 6d 61 69 6e 2e 43 6f 6e 74   $form_main.Cont
1250: 72 6f 6c 73 2e 41 64 64 28 24 73 74 61 72 74 5f  rols.Add($start_
1260: 62 75 74 74 6f 6e 29 0d 0a 0d 0a 20 20 24 70 72  button)....  $pr
1270: 6f 67 72 65 73 73 42 61 72 31 2e 44 61 74 61 42  ogressBar1.DataB
1280: 69 6e 64 69 6e 67 73 2e 44 65 66 61 75 6c 74 44  indings.DefaultD
1290: 61 74 61 53 6f 75 72 63 65 55 70 64 61 74 65 4d  ataSourceUpdateM
12a0: 6f 64 65 20 3d 20 30 0d 0a 20 20 24 70 72 6f 67  ode = 0..  $prog
12b0: 72 65 73 73 42 61 72 31 2e 4d 61 78 69 6d 75 6d  ressBar1.Maximum
12c0: 20 3d 20 31 38 30 0d 0a 20 20 24 53 79 73 74 65   = 180..  $Syste
12d0: 6d 5f 44 72 61 77 69 6e 67 5f 53 69 7a 65 20 3d  m_Drawing_Size =
12e0: 20 4e 65 77 2d 4f 62 6a 65 63 74 20 53 79 73 74   New-Object Syst
12f0: 65 6d 2e 44 72 61 77 69 6e 67 2e 53 69 7a 65 0d  em.Drawing.Size.
1300: 0a 20 20 24 53 79 73 74 65 6d 5f 44 72 61 77 69  .  $System_Drawi
1310: 6e 67 5f 53 69 7a 65 2e 57 69 64 74 68 20 3d 20  ng_Size.Width = 
1320: 35 32 36 0d 0a 20 20 24 53 79 73 74 65 6d 5f 44  526..  $System_D
1330: 72 61 77 69 6e 67 5f 53 69 7a 65 2e 48 65 69 67  rawing_Size.Heig
1340: 68 74 20 3d 20 38 37 0d 0a 20 20 24 70 72 6f 67  ht = 87..  $prog
1350: 72 65 73 73 42 61 72 31 2e 53 69 7a 65 20 3d 20  ressBar1.Size = 
1360: 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f  $System_Drawing_
1370: 53 69 7a 65 0d 0a 20 20 24 70 72 6f 67 72 65 73  Size..  $progres
1380: 73 42 61 72 31 2e 53 74 65 70 20 3d 20 31 0d 0a  sBar1.Step = 1..
1390: 20 20 24 70 72 6f 67 72 65 73 73 42 61 72 31 2e    $progressBar1.
13a0: 54 61 62 49 6e 64 65 78 20 3d 20 30 0d 0a 20 20  TabIndex = 0..  
13b0: 24 53 79 73 74 65 6d 5f 44 72 61 77 69 6e 67 5f  $System_Drawing_
13c0: 50 6f 69 6e 74 20 3d 20 4e 65 77 2d 4f 62 6a 65  Point = New-Obje
13d0: 63 74 20 53 79 73 74 65 6d 2e 44 72 61 77 69 6e  ct System.Drawin
13e0: 67 2e 50 6f 69 6e 74 0d 0a 20 20 24 53 79 73 74  g.Point..  $Syst
13f0: 65 6d 5f 44 72 61 77 69 6e 67 5f 50 6f 69 6e 74  em_Drawing_Point
1400: 2e 58 20 3d 20 34 35 0d 0a 20 20 24 53 79 73 74  .X = 45..  $Syst
1410: 65 6d 5f 44 72 61 77 69 6e 67 5f 50 6f 69 6e 74  em_Drawing_Point
1420: 2e 59 20 3d 20 31 34 36 0d 0a 20 20 24 70 72 6f  .Y = 146..  $pro
1430: 67 72 65 73 73 42 61 72 31 2e 4c 6f 63 61 74 69  gressBar1.Locati
1440: 6f 6e 20 3d 20 24 53 79 73 74 65 6d 5f 44 72 61  on = $System_Dra
1450: 77 69 6e 67 5f 50 6f 69 6e 74 0d 0a 20 20 24 70  wing_Point..  $p
1460: 72 6f 67 72 65 73 73 42 61 72 31 2e 53 74 79 6c  rogressBar1.Styl
1470: 65 20 3d 20 31 0d 0a 20 20 24 70 72 6f 67 72 65  e = 1..  $progre
1480: 73 73 42 61 72 31 2e 4e 61 6d 65 20 3d 20 27 70  ssBar1.Name = 'p
1490: 72 6f 67 72 65 73 73 42 61 72 31 27 0d 0a 20 20  rogressBar1'..  
14a0: 0d 0a 20 20 24 66 6f 72 6d 5f 6d 61 69 6e 2e 43  ..  $form_main.C
14b0: 6f 6e 74 72 6f 6c 73 2e 41 64 64 28 24 70 72 6f  ontrols.Add($pro
14c0: 67 72 65 73 73 42 61 72 31 29 0d 0a 20 20 0d 0a  gressBar1)..  ..
14d0: 20 20 24 74 69 6d 65 72 31 2e 49 6e 74 65 72 76    $timer1.Interv
14e0: 61 6c 20 3d 20 31 30 30 30 0d 0a 20 20 24 74 69  al = 1000..  $ti
14f0: 6d 65 72 31 2e 61 64 64 5f 74 69 63 6b 28 24 74  mer1.add_tick($t
1500: 69 6d 65 72 31 5f 4f 6e 54 69 63 6b 29 0d 0a 0d  imer1_OnTick)...
1510: 0a 20 20 24 49 6e 69 74 69 61 6c 46 6f 72 6d 57  .  $InitialFormW
1520: 69 6e 64 6f 77 53 74 61 74 65 20 3d 20 24 66 6f  indowState = $fo
1530: 72 6d 5f 6d 61 69 6e 2e 57 69 6e 64 6f 77 53 74  rm_main.WindowSt
1540: 61 74 65 0d 0a 20 20 24 66 6f 72 6d 5f 6d 61 69  ate..  $form_mai
1550: 6e 2e 61 64 64 5f 4c 6f 61 64 28 24 4f 6e 4c 6f  n.add_Load($OnLo
1560: 61 64 46 6f 72 6d 5f 53 74 61 74 65 43 6f 72 72  adForm_StateCorr
1570: 65 63 74 69 6f 6e 29 0d 0a 20 20 24 66 6f 72 6d  ection)..  $form
1580: 5f 6d 61 69 6e 2e 53 68 6f 77 44 69 61 6c 6f 67  _main.ShowDialog
1590: 28 29 7c 20 4f 75 74 2d 4e 75 6c 6c 0d 0a 0d 0a  ()| Out-Null....
15a0: 7d 20 0d 0a 0d 0a 23 43 61 6c 6c 20 74 68 65 20  } ....#Call the 
15b0: 46 75 6e 63 74 69 6f 6e 0d 0a 47 65 6e 65 72 61  Function..Genera
15c0: 74 65 46 6f 72 6d 0d 0a                          teForm..