Other features are:
Display the time in the title
Save Lap times
Shrink the Window to a more compact size.
Window always on top
Minimize window to tray
Set the opacity
Set the font color
Updated June 8, 2013
- Fixed: Fixed a typo in the lap difference feature.
Updated June 23, 2013
- Added:Support for military time. You can't switch between times while the stopwatch is running, or you will get a vbscript error. If you have to switch times, stop the stopwatch, exit it, change the time and start the stopwatch
Updated June 7, 2013
- Fixed: Fixed a bug with lap difference feature.
Updated June 6, 2013
- Fixed: Access violation error/crashing.
- Added: Timer will continue when you exit the script while the counter is running. Try the following: Start the stopwatch and exit it by clicking the X in the dialog, wait a few seconds and restart the script... the stop watch will keep track of the time elapsed while the program was closed. E. g. The counter will continue from 30 seconds if you exit the script when the timer is at 10 seconds, wait 20 seconds and restart the script. The script will also keep track of the lap times.
Code: Select all
//<--Start > Set Directory to save settings ini file to
Let>IniDir=C:\Program Files\Rains Stopwatch
IfDirExists>%IniDir%
IfFileExists>%IniDir%\Stopwatch.ini
ELSE
WriteLn>%IniDir%\Stopwatch.ini,r,
ENDIF
ELSE
CreateDir>%IniDir%
WriteLn>%IniDir%\Stopwatch.ini,r,
ENdif
//<--End > Set Directory to save settings ini file to
Dialog>Dialog1
object Dialog1: TForm
Left = 247
Top = 96
HelpContext = 5000
BorderIcons = [biSystemMenu, biMinimize]
Caption = 'Stopwatch'
ClientHeight = 368
ClientWidth = 446
Color = clBlack
Ctl3D = False
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Menu = MainMenu
OldCreateOrder = True
Position = poScreenCenter
ShowHint = True
OnTaskBar = True
PixelsPerInch = 96
TextHeight = 13
object Panel2: TPanel
Left = 0
Top = 0
Width = 446
Height = 368
Align = alClient
BevelOuter = bvNone
Color = clBlack
ParentBackground = False
TabOrder = 0
ExplicitWidth = 513
ExplicitHeight = 449
object Panel4: TPanel
Left = 0
Top = 341
Width = 446
Height = 27
Align = alBottom
BevelInner = bvLowered
BevelKind = bkSoft
BevelOuter = bvLowered
Color = clWhite
ParentBackground = False
TabOrder = 0
object Panel5: TPanel
Left = 2
Top = 2
Width = 140
Height = 19
Align = alLeft
ParentBackground = False
TabOrder = 0
object StatusBar1: TStatusBar
Left = 1
Top = -1
Width = 138
Height = 19
Panels = <>
SimplePanel = True
SimpleText = '00:00:00:00.00'
end
end
object Panel6: TPanel
Left = 142
Top = 2
Width = 76
Height = 19
Align = alLeft
ParentBackground = False
TabOrder = 2
object StatusBar2: TStatusBar
Left = 1
Top = -1
Width = 74
Height = 19
Panels = <>
SimplePanel = True
SimpleText = '12:16 AM'
end
end
object Panel8: TPanel
Left = 218
Top = 2
Width = 222
Height = 19
Align = alClient
ParentBackground = False
TabOrder = 1
object StatusBar3: TStatusBar
Left = 1
Top = -1
Width = 220
Height = 19
Panels = <>
SimplePanel = True
end
end
end
object Panel1: TPanel
Left = 0
Top = 0
Width = 446
Height = 60
Align = alTop
BevelInner = bvRaised
BevelKind = bkTile
BorderStyle = bsSizeable
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -24
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentFont = False
TabOrder = 1
object Edit1: TEdit
Left = 2
Top = 2
Width = 438
Height = 52
Cursor = crArrow
Align = alClient
Alignment = taCenter
BevelInner = bvNone
BevelOuter = bvNone
BorderStyle = bsNone
Color = clBlack
Font.Charset = ANSI_CHARSET
Font.Color = clWhite
Font.Height = -35
Font.Name = 'Arial Black'
Font.Style = [fsBold]
ParentFont = False
ReadOnly = True
TabOrder = 1
Text = '00:00:00:00.00'
end
object MSButton1: tMSButton
Left = 0
Top = 0
Width = 1
Height = 1
Caption = '&browse'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
ParentFont = False
TabOrder = 0
DoBrowse = False
Filename = 'Lap Times.txt'
Filter = 'Text Document (*.txt)|*.txt|'
BrowseStyle = fbOpen
end
end
object Panel3: TPanel
Left = 0
Top = 60
Width = 446
Height = 281
Align = alClient
BevelInner = bvRaised
BevelKind = bkTile
TabOrder = 2
ExplicitLeft = 56
ExplicitTop = 56
ExplicitWidth = 481
object MSListBox1: tMSListBox
Left = 2
Top = 2
Width = 438
Height = 273
Style = lbOwnerDrawFixed
Align = alClient
Color = -1
ExtendedSelect = False
Font.Charset = ANSI_CHARSET
Font.Color = clWhite
Font.Height = -16
Font.Name = 'Arial Black'
Font.Style = [fsBold]
ItemHeight = 18
ParentFont = False
TabOrder = 0
SelectedIndex = -1
ExplicitLeft = 122
ExplicitWidth = 413
end
end
end
object MainMenu: tMSMainMenu
object MenuItem1: tMSMenuItem
Caption = '&Options'
object MenuItem42: tMSMenuItem
Caption = 'S&tart (Ctrl+Alt+S)'
end
object MenuItem43: tMSMenuItem
Caption = '&Lap (Ctrl+Alt+L)'
end
object MenuItem44: tMSMenuItem
Caption = '&Reset (Ctrl+Alt+R)'
end
object MenuItem46: tMSMenuItem
Caption = 'Clear Laps (Ctrl+Alt+C)'
end
object MenuItem45: tMSMenuItem
Caption = '-'
end
object MenuItem2: tMSMenuItem
AutoCheck = True
Caption = '&Display in Title'
end
object MenuItem3: tMSMenuItem
Caption = '-'
end
object MenuItem4: tMSMenuItem
Caption = '&Open'
end
object MenuItem5: tMSMenuItem
Caption = '&Save'
end
object MenuItem6: tMSMenuItem
Caption = '-'
end
object MenuItem7: tMSMenuItem
Caption = 'S&hrink Window'
end
object MenuItem8: tMSMenuItem
Caption = '-'
end
object MenuItem9: tMSMenuItem
AutoCheck = True
Caption = '&Always on top'
end
object MenuItem10: tMSMenuItem
Caption = '&Minimize to tray'
end
object MenuItem11: tMSMenuItem
Caption = 'O&pacity'
object MenuItem12: tMSMenuItem
AutoCheck = True
Caption = '&10%'
RadioItem = True
end
object MenuItem13: tMSMenuItem
AutoCheck = True
Caption = '&20%'
RadioItem = True
end
object MenuItem14: tMSMenuItem
AutoCheck = True
Caption = '&30%'
RadioItem = True
end
object MenuItem15: tMSMenuItem
AutoCheck = True
Caption = '&40%'
RadioItem = True
end
object MenuItem16: tMSMenuItem
AutoCheck = True
Caption = '&50%'
RadioItem = True
end
object MenuItem17: tMSMenuItem
AutoCheck = True
Caption = '&60%'
RadioItem = True
end
object MenuItem18: tMSMenuItem
AutoCheck = True
Caption = '&70%'
RadioItem = True
end
object MenuItem19: tMSMenuItem
AutoCheck = True
Caption = '&80%'
RadioItem = True
end
object MenuItem20: tMSMenuItem
AutoCheck = True
Caption = '&90%'
RadioItem = True
end
object MenuItem21: tMSMenuItem
Caption = '-'
end
object MenuItem22: tMSMenuItem
AutoCheck = True
Caption = '&Disabled'
Checked = True
RadioItem = True
end
end
object MenuItem26: tMSMenuItem
Caption = '&Font Color'
object MenuItem27: tMSMenuItem
Caption = 'Maroon'
end
object MenuItem28: tMSMenuItem
Caption = 'Green'
end
object MenuItem29: tMSMenuItem
Caption = 'Olive'
end
object MenuItem30: tMSMenuItem
Caption = 'Navy'
end
object MenuItem31: tMSMenuItem
Caption = 'Purple'
end
object MenuItem32: tMSMenuItem
Caption = 'Teal'
end
object MenuItem33: tMSMenuItem
Caption = 'Gray'
end
object MenuItem34: tMSMenuItem
Caption = 'Silver'
end
object MenuItem35: tMSMenuItem
Caption = 'Red'
end
object MenuItem36: tMSMenuItem
Caption = 'Lime'
end
object MenuItem37: tMSMenuItem
Caption = 'Yellow'
end
object MenuItem38: tMSMenuItem
Caption = 'Blue'
end
object MenuItem39: tMSMenuItem
Caption = 'Fuchsia'
end
object MenuItem40: tMSMenuItem
Caption = 'Aqua'
end
object MenuItem41: tMSMenuItem
Caption = 'White'
end
end
end
object MenuItem23: tMSMenuItem
Caption = '&Start'
Hint = 'Ctrl+Alt+S'
end
object MenuItem24: tMSMenuItem
Caption = '&Lap'
Hint = 'Ctrl+Alt+L'
end
object MenuItem25: tMSMenuItem
Caption = '&Reset'
end
end
end
EndDialog>Dialog1
AddDialogHandler>Dialog1,,OnClose,ExitScript
AddDialogHandler>Dialog1,MenuItem4,OnClick,OpenFile
AddDialogHandler>Dialog1,MenuItem5,OnClick,SaveLapTimes
AddDialogHandler>Dialog1,MenuItem7,OnClick,ShrinkWindow
AddDialogHandler>Dialog1,MenuItem9,OnClick,SetOnTop
AddDialogHandler>Dialog1,MenuItem10,OnClick,MinimizeToTray
AddDialogHandler>Dialog1,MenuItem12,OnClick,SetOpacity(26)
AddDialogHandler>Dialog1,MenuItem13,OnClick,SetOpacity(51)
AddDialogHandler>Dialog1,MenuItem14,OnClick,SetOpacity(77)
AddDialogHandler>Dialog1,MenuItem15,OnClick,SetOpacity(102)
AddDialogHandler>Dialog1,MenuItem16,OnClick,SetOpacity(128)
AddDialogHandler>Dialog1,MenuItem17,OnClick,SetOpacity(153)
AddDialogHandler>Dialog1,MenuItem18,OnClick,SetOpacity(179)
AddDialogHandler>Dialog1,MenuItem19,OnClick,SetOpacity(204)
AddDialogHandler>Dialog1,MenuItem20,OnClick,SetOpacity(230)
AddDialogHandler>Dialog1,MenuItem22,OnClick,SetOpacity(False)
AddDialogHandler>Dialog1,MenuItem27,OnClick,SetFontColor(128)
AddDialogHandler>Dialog1,MenuItem28,OnClick,SetFontColor(32768)
AddDialogHandler>Dialog1,MenuItem29,OnClick,SetFontColor(32896)
AddDialogHandler>Dialog1,MenuItem30,OnClick,SetFontColor(8388608)
AddDialogHandler>Dialog1,MenuItem31,OnClick,SetFontColor(8388736)
AddDialogHandler>Dialog1,MenuItem32,OnClick,SetFontColor(8421376)
AddDialogHandler>Dialog1,MenuItem33,OnClick,SetFontColor(8421504)
AddDialogHandler>Dialog1,MenuItem34,OnClick,SetFontColor(12632256)
AddDialogHandler>Dialog1,MenuItem35,OnClick,SetFontColor(255)
AddDialogHandler>Dialog1,MenuItem36,OnClick,SetFontColor(65280)
AddDialogHandler>Dialog1,MenuItem37,OnClick,SetFontColor(65535)
AddDialogHandler>Dialog1,MenuItem38,OnClick,SetFontColor(16711680)
AddDialogHandler>Dialog1,MenuItem39,OnClick,SetFontColor(16711935)
AddDialogHandler>Dialog1,MenuItem40,OnClick,SetFontColor(16776960)
AddDialogHandler>Dialog1,MenuItem41,OnClick,SetFontColor(16777215)
AddDialogHandler>Dialog1,MenuItem23,OnClick,SetPauseState
AddDialogHandler>Dialog1,MenuItem24,OnClick,SetLapTime
AddDialogHandler>Dialog1,MenuItem25,OnClick,ResetTimer
AddDialogHandler>Dialog1,MenuItem42,OnClick,SetPauseState
AddDialogHandler>Dialog1,MenuItem43,OnClick,SetLapTime
AddDialogHandler>Dialog1,MenuItem44,OnClick,ResetTimer
AddDialogHandler>Dialog1,MenuItem46,OnClick,ClearLapList
AddDialogHandler>Dialog1,Panel2,OnResize,Resize
SetDialogProperty>Dialog1,Edit1,Text,00:00:00:00.00
SetDialogProperty>Dialog1,StatusBar1,SimpleText,00:00:00:00.00
SetDialogProperty>Dialog1,MSListBox1,Text,
SetDialogProperty>Dialog1,,BorderIcons,[biMaximize, biMinimize, biSystemMenu]
SetDialogProperty>Dialog1,Panel1,Visible,True
SetDialogProperty>Dialog1,Panel2,Visible,True
SetDialogProperty>Dialog1,Panel3,Visible,True
SetDialogProperty>Dialog1,MenuItem24,Visible,False
SetDialogProperty>Dialog1,MenuItem25,Visible,True
SetDialogProperty>Dialog1,MenuItem43,Enabled,False
SetDialogProperty>Dialog1,MenuItem44,Enabled,True
GetTime>TheTime
SetDialogProperty>Dialog1,StatusBar2,SimpleText,%TheTime%
//<--Start > Tray icon
IfFileExists>%TEMP_DIR%-cp-stop-watch-icon.ico
del>%TEMP_DIR%-cp-stop-watch-icon.ico
ENDIF
ExportData>STOPWATCH16X16.ICO_DATA,%TEMP_DIR%-cp-stop-watch-icon.ico
AddTrayIcon>%TEMP_DIR%-cp-stop-watch-icon.ico,MyTrayIcon,Click to Show Stopwatch
AddTrayHandler>MyTrayIcon,OnMouseDown,ShowStopwatch
ModTrayIcon>MyTrayIcon,Click to Show Stopwatch,,False
//<--End > Tray icon
//<--Start > Set saved Opacity
ReadIniFile>%IniDir%\Stopwatch.ini,Settings,Opacity,Opacity_Var
IF>Opacity_Var=
ELSE
IF>%Opacity_Var%<>False
SetDialogProperty>Dialog1,,AlphaBlend,True
SetDialogProperty>Dialog1,,AlphaBlendValue,%Opacity_Var%
SetDialogProperty>Dialog1,MenuItem22,Checked,False
IF>Opacity_Var=26
SetDialogProperty>Dialog1,MenuItem12,Checked,True
ENDIF
IF>Opacity_Var=51
SetDialogProperty>Dialog1,MenuItem13,Checked,True
ENDIF
IF>Opacity_Var=77
SetDialogProperty>Dialog1,MenuItem14,Checked,True
ENDIF
IF>Opacity_Var=102
SetDialogProperty>Dialog1,MenuItem15,Checked,True
ENDIF
IF>Opacity_Var=128
SetDialogProperty>Dialog1,MenuItem16,Checked,True
ENDIF
IF>Opacity_Var=153
SetDialogProperty>Dialog1,MenuItem17,Checked,True
ENDIF
IF>Opacity_Var=179
SetDialogProperty>Dialog1,MenuItem18,Checked,True
ENDIF
IF>Opacity_Var=204
SetDialogProperty>Dialog1,MenuItem19,Checked,True
ENDIF
IF>Opacity_Var=230
SetDialogProperty>Dialog1,MenuItem20,Checked,True
ENDIF
Endif
ENDIF
//<--End > Set saved Opacity
//<--Start > Set saved font color
ReadIniFile>%IniDir%\Stopwatch.ini,Settings,Font Color,Font_Color
IF>Font_Color=
Let>Font_Color=16777215
ENDIF
Let>Font_Name=Arial Black
Let>Font_Size=26
Let>Font_Style=1
SetDialogObjectFont>Dialog1,Edit1,Font_Name,Font_Size,Font_Style,Font_Color
SetDialogObjectFont>Dialog1,MSListBox1,Arial Black,12,1,Font_Color
//<--End > Set saved font color
//<--Start > Saved Time Function
ReadIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,SavedTimeRes
IF>SavedTimeRes=
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,0
ENDIF
ReadIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,SavedTimeRes
IF>SavedTimeRes<>0
Year>YY
Month>MM
Day>DD
Hour>HH
Min>NN
Sec>SS
Let>toDate=%YY%/%MM%/%DD% %HH%:%NN%:%SS%
VBEval>Abs(DateDiff("s","%SavedTimeRes%","%toDate%")),DiffRes
Let>SavedMilliseconds=%DiffRes%*1000
Let>ContinueFromSavedTime=True
ReadIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Times,LapTimesRes
Separate>%LapTimesRes%,;,Lap_List
IF>Lap_List_Count>0
SetDialogProperty>Dialog1,StatusBar3,SimpleText,%Lap_List_1%
ENDIF
StringReplace>%LapTimesRes%,;,%CRLF%,LapTimesRes
SetDialogProperty>Dialog1,MSListBox1,Text,LapTimesRes
ReadIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Count,LapCounter
ReadIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Time,LapTickCount
IF>LapTickCount=
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Time,0
Let>LapTickCount=0
ENDIF
IF>LapCounter=
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Count,0
Let>LapCounter=0
ENDIF
ELSE
Let>LapCounter=0
Let>LapTickCount=0
Let>HasBeenReset=True
ENDIF
//<--End > Saved Time Function
Show>Dialog1
OnEvent>KEY_DOWN,c,5,ClearLapList
OnEvent>KEY_DOWN,s,5,SetOneEventPauseState
GetDialogProperty>Dialog1,,Height,DialogHeight
GetDialogProperty>Dialog1,Panel1,Height,Panel1Height
GetDialogProperty>Dialog1,Panel3,Height,Panel3Height
GetDialogProperty>Dialog1,Panel4,Height,Panel4Height
Sub>DialogHeight,Panel1Height
Sub>DialogHeight,Panel3Height
Let>SavedLaps=
Let>TimerPaused=True
Let>SavedTickCount=0
Let>SecondsTickCount=0
Let>DaysElapsed=00
Let>HoursElapsed=00
Let>MinutesElapsed=00
Let>SecondsElapsed=00
Let>MilSecDisplay=.00
Let>EndTimer=0
Let>StartTimer=0
Let>NumOfSecPaused=0
Let>NumOfSavedSecPaused=0
Label>lblPause
OnEvent>KEY_DOWN,l,5,
SetDialogProperty>Dialog1,MenuItem24,Visible,False
SetDialogProperty>Dialog1,MenuItem25,Visible,True
SetDialogProperty>Dialog1,MenuItem43,Enabled,False
SetDialogProperty>Dialog1,MenuItem44,Enabled,True
Let>SavedTickCount=%EndTimer%-%StartTimer%
//<--Start > Saved Time Function
IF>SavedTimeRes<>0
IF>SavedTimeAdded<>True
Let>SavedTimeAdded=True
Add>SavedTickCount,%SavedMilliseconds%
ENDIF
Timer>StartPauseTimer
ENDIF
//<--End > Saved Time Function
Label>lblPauseLoop
//<--Start > Saved Time Function
IF>SavedTimeRes<>0
Timer>EndPauseTimer
Let>NumOfSavedSecPaused={(%EndPauseTimer%-%StartPauseTimer%)/1000}
ENDIF
IF>ContinueFromSavedTime=True
Let>ContinueFromSavedTime=False
Let>ResetSavedTime=False
Gosub>SetPauseState
ENDIF
//<--End > Saved Time Function
//<--Start > Start timer when Start is clicked
IF>TimerPaused=False
Goto>lblStart
ENDIF
//<--End > Start timer when Start is clicked
//<--Start > Display timer in dialog title when selected
GetDialogProperty>Dialog1,MenuItem2,Checked,res
If>res=True
SetDialogProperty>Dialog1,,Caption,%DaysElapsed%:%HoursElapsed%:%MinutesElapsed%:%SecondsElapsed%%MilSecDisplay%
Else
SetDialogProperty>Dialog1,,Caption,Stopwatch
ENDIF
//<--END > Display timer in dialog title when selected
//<--Start > Enable option to save laps or disable when there are none
GetDialogProperty>Dialog1,MSListBox1,Text,SavedLaps
IF>SavedLaps=
SetDialogProperty>Dialog1,MenuItem5,Enabled,False
ELSE
SetDialogProperty>Dialog1,MenuItem5,Enabled,True
Endif
//<--Start > Enable option to save laps or disable when there are none
//<--Start > Display time in status bar
GetTime>TheTime
SetDialogProperty>Dialog1,StatusBar2,SimpleText,%TheTime%
//<--End > Display time in status bar
//<--Start > update tray icon when dialog is minimized to tray
GetDialogProperty>Dialog1,,Visible,dResult
If>dResult=False
Wait>.5
GetDialogProperty>Dialog1,,Visible,dResult
If>dResult=False
ModTrayIcon>MyTrayIcon,%DaysElapsed%:%HoursElapsed%:%MinutesElapsed%:%SecondsElapsed%%MilSecDisplay% (Click to show),,True
Endif
Endif
//<--End > update tray icon when dialog is minimized to tray
Wait>.1
Goto>lblPauseLoop
Label>lblStart
//<--Start > Saved Time Function
Add>NumOfSecPaused,%NumOfSavedSecPaused%
//<--End > Saved Time Function
OnEvent>KEY_DOWN,l,5,SetOneEventLapTime
SetDialogProperty>Dialog1,MenuItem25,Visible,False
SetDialogProperty>Dialog1,MenuItem24,Visible,True
SetDialogProperty>Dialog1,MenuItem43,Enabled,True
SetDialogProperty>Dialog1,MenuItem44,Enabled,False
Timer>StartTimer
Label>lblTimerLoop
IF>TimerPaused=True
Goto>lblPause
ENDIF
Timer>EndTimer
Add>EndTimer,SavedTickCount
Let>MillisecondsTickCount={(%EndTimer%-%StartTimer%)/1000}
Position>%COMMA%,%MillisecondsTickCount%,1,DEC_SEPARATOR
IF>DEC_SEPARATOR>0
StringReplace>%MillisecondsTickCount%,%COMMA%,.,MillisecondsTickCount
endif
VBEval>FormatNumber(%MillisecondsTickCount%,2,-2,-2,0),ElapsedMilliseconds
Position>%COMMA%,%ElapsedMilliseconds%,1,DEC_SEPARATOR
IF>DEC_SEPARATOR>0
StringReplace>%ElapsedMilliseconds%,%COMMA%,.,ElapsedMilliseconds
ENDIF
Position>.,%ElapsedMilliseconds%,1,DecPosition
IF>DecPosition>0
MidStr>%ElapsedMilliseconds%,%DecPosition%,10,MilSecDisplay
ELSE
Let>MilSecDisplay=00
ENDIF
Let>MainTickCount=%EndTimer%-%StartTimer%
Let>SecondsTickCount={(%EndTimer%-%StartTimer%)/1000}
Position>%COMMA%,%SecondsTickCount%,1,DEC_SEPARATOR
IF>DEC_SEPARATOR>0
StringReplace>%SecondsTickCount%,%COMMA%,.,SecondsTickCount
ENDIF
Let>ElapsedSeconds={Round(%SecondsTickCount%)}
Let>DaysElapsed={%ElapsedSeconds% DIV 86400}
Let>ElapsedSeconds={%ElapsedSeconds% MOD 86400}
Let>HoursElapsed={%ElapsedSeconds% DIV 3600}
Let>ElapsedSeconds={%ElapsedSeconds% MOD 3600}
Let>MinutesElapsed={%ElapsedSeconds% DIV 60}
Let>SecondsElapsed={%ElapsedSeconds% MOD 60}
Len>%DaysElapsed%,ddLen
Len>%HoursElapsed%,hhLen
Len>%MinutesElapsed%,mmLen
Len>%SecondsElapsed%,ssLen
IF>ddLen=1
Let>DaysElapsed=0%DaysElapsed%
ENDIF
IF>hhLen=1
Let>HoursElapsed=0%HoursElapsed%
ENDIF
IF>mmLen=1
Let>MinutesElapsed=0%MinutesElapsed%
ENDIF
IF>ssLen=1
Let>SecondsElapsed=0%SecondsElapsed%
ENDIF
SetDialogProperty>Dialog1,StatusBar1,SimpleText,%DaysElapsed%:%HoursElapsed%:%MinutesElapsed%:%SecondsElapsed%%MilSecDisplay%
SetDialogProperty>Dialog1,Edit1,Text,%DaysElapsed%:%HoursElapsed%:%MinutesElapsed%:%SecondsElapsed%%MilSecDisplay%
SetDialogProperty>Dialog3,Edit1,Text,%DaysElapsed%:%HoursElapsed%:%MinutesElapsed%:%SecondsElapsed%%MilSecDisplay%
GetDialogProperty>Dialog1,MenuItem2,Checked,res
If>res=True
SetDialogProperty>Dialog1,MenuItem2,BitmapData,DisplayTimerOff
SetDialogProperty>Dialog1,,Caption,%DaysElapsed%:%HoursElapsed%:%MinutesElapsed%:%SecondsElapsed%%MilSecDisplay%
Else
SetDialogProperty>Dialog1,MenuItem2,BitmapData,DisplayTimerOn
SetDialogProperty>Dialog1,,Caption,Stopwatch
ENDIF
GetTime>TheTime
SetDialogProperty>Dialog1,StatusBar2,SimpleText,%TheTime%
Wait>0.005
GetDialogProperty>Dialog1,MSListBox1,Text,SavedLaps
IF>SavedLaps=
SetDialogProperty>Dialog1,MenuItem5,Enabled,False
ELSE
SetDialogProperty>Dialog1,MenuItem5,Enabled,True
Endif
GetDialogProperty>Dialog1,,Visible,dResult
If>dResult=False
Wait>.005
GetDialogProperty>Dialog1,,Visible,dResult
If>dResult=False
ModTrayIcon>MyTrayIcon,%DaysElapsed%:%HoursElapsed%:%MinutesElapsed%:%SecondsElapsed%%MilSecDisplay% (Click to show),,True
Endif
Endif
Goto>lblTimerLoop
SRT>SetLapTime
Len>%DaysElapsed%,ddLen
Len>%HoursElapsed%,hhLen
Len>%MinutesElapsed%,mmLen
Len>%SecondsElapsed%,ssLen
IF>ddLen=1
Let>DaysElapsed=0%DaysElapsed%
ENDIF
IF>hhLen=1
Let>HoursElapsed=0%HoursElapsed%
ENDIF
IF>mmLen=1
Let>MinutesElapsed=0%MinutesElapsed%
ENDIF
IF>ssLen=1
Let>SecondsElapsed=0%SecondsElapsed%
ENDIF
Let>DisplayCounter=%DaysElapsed%:%HoursElapsed%:%MinutesElapsed%:%SecondsElapsed%
IF>LapCounter>0
Let>TimeDiff={(%MainTickCount%-%LapTickCount%)/1000}
Position>%COMMA%,%TimeDiff%,1,DEC_SEPARATOR
IF>DEC_SEPARATOR>0
StringReplace>%TimeDiff%,%COMMA%,.,TimeDiff
ENDIF
Let>LapMillisecondsTickCount={(%MainTickCount%-%LapTickCount%)/1000}
Position>%COMMA%,%LapMillisecondsTickCount%,1,DEC_SEPARATOR
IF>DEC_SEPARATOR>0
StringReplace>%LapMillisecondsTickCount%,%COMMA%,.,LapMillisecondsTickCount
ENDIF
VBEval>FormatNumber(%LapMillisecondsTickCount%,2,-2,-2,0),ElapsedLapMilliseconds
Position>%COMMA%,%ElapsedLapMilliseconds%,1,DEC_SEPARATOR
IF>DEC_SEPARATOR>0
StringReplace>%ElapsedLapMilliseconds%,%COMMA%,.,ElapsedLapMilliseconds
ENDIF
Position>.,%ElapsedLapMilliseconds%,1,DecPosition
IF>DecPosition>0
MidStr>%ElapsedLapMilliseconds%,%DecPosition%,10,MilLapSecDisplay
ELSE
Let>MilLapSecDisplay=00
ENDIF
Let>ElapsedSeconds={Round(%TimeDiff%)}
Let>DaysElapsed={%ElapsedSeconds% DIV 86400}
Let>ElapsedSeconds={%ElapsedSeconds% MOD 86400}
Let>HoursElapsed={%ElapsedSeconds% DIV 3600}
Let>ElapsedSeconds={%ElapsedSeconds% MOD 3600}
Let>MinutesElapsed={%ElapsedSeconds% DIV 60}
Let>SecondsElapsed={%ElapsedSeconds% MOD 60}
Len>%DaysElapsed%,ddLen
Len>%HoursElapsed%,hhLen
Len>%MinutesElapsed%,mmLen
Len>%SecondsElapsed%,ssLen
IF>ddLen=1
Let>DaysElapsed=0%DaysElapsed%
ENDIF
IF>hhLen=1
Let>HoursElapsed=0%HoursElapsed%
ENDIF
IF>mmLen=1
Let>MinutesElapsed=0%MinutesElapsed%
ENDIF
IF>ssLen=1
Let>SecondsElapsed=0%SecondsElapsed%
ENDIF
Let>DisplayDiff=(%DaysElapsed%:%HoursElapsed%:%MinutesElapsed%:%SecondsElapsed%%MilLapSecDisplay%)
ENDIF
IF>LapCounter=0
Let>TimeDiff=0
Let>DisplayDiff=
ENDIF
Add>LapCounter,1
Let>LapTickCount=%EndTimer%-%StartTimer%
//<--Start > Saved Time Function
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Count,%LapCounter%
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Time,%LapTickCount%
Let>LapTimesRes=Lap %LapCounter%: %DisplayCounter%%MilSecDisplay% %DisplayDiff%%CRLF%%SavedLaps%
StringReplace>%LapTimesRes%,%CRLF%,;,LapTimesRes
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Times,%LapTimesRes%
//<--End > Saved Time Function
IF>LapCounter=1
SetDialogProperty>Dialog1,MSListBox1,Text,Lap %LapCounter%: %DisplayCounter%%MilSecDisplay%%CRLF%%SavedLaps%
ELSE
SetDialogProperty>Dialog1,MSListBox1,Text,Lap %LapCounter%: %DisplayCounter%%MilSecDisplay% %DisplayDiff%%CRLF%%SavedLaps%
ENDIF
GetDialogProperty>Dialog1,MSListBox1,Text,SavedLaps
SetDialogProperty>Dialog1,StatusBar3,SimpleText,Lap %LapCounter%: %DisplayCounter%%MilSecDisplay% %DisplayDiff%
//<--Start > Saved Time Function
IF>TimerPaused=False
IF>HasBeenReset=True
Year>YY
Month>MM
Day>DD
Hour>HH
Min>NN
Sec>SS
GetTime>TheTime
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,%YY%/%MM%/%DD% %TheTime%
ELSE
Let>NumOfSecToAdd={Round(%NumOfSecPaused%)}
ReadIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,SavedTimeRes
VBEval>dateadd("s", "%NumOfSecPaused%", "%SavedTimeRes%"),NewTimeRes
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,%NewTimeRes%
ENDIF
ELSE
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Count,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Time,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Times,
ENDIF
//<--End > Saved Time Function
END>SetLapTime
SRT>SetOneEventLapTime
Len>%DaysElapsed%,ddLen
Len>%HoursElapsed%,hhLen
Len>%MinutesElapsed%,mmLen
Len>%SecondsElapsed%,ssLen
IF>ddLen=1
Let>DaysElapsed=0%DaysElapsed%
ENDIF
IF>hhLen=1
Let>HoursElapsed=0%HoursElapsed%
ENDIF
IF>mmLen=1
Let>MinutesElapsed=0%MinutesElapsed%
ENDIF
IF>ssLen=1
Let>SecondsElapsed=0%SecondsElapsed%
ENDIF
Let>DisplayCounter=%DaysElapsed%:%HoursElapsed%:%MinutesElapsed%:%SecondsElapsed%
IF>LapCounter>0
Let>TimeDiff={(%MainTickCount%-%LapTickCount%)/1000}
Position>%COMMA%,%TimeDiff%,1,DEC_SEPARATOR
IF>DEC_SEPARATOR>0
StringReplace>%TimeDiff%,%COMMA%,.,TimeDiff
ENDIF
Let>LapMillisecondsTickCount={(%MainTickCount%-%LapTickCount%)/1000}
Position>%COMMA%,%LapMillisecondsTickCount%,1,DEC_SEPARATOR
IF>DEC_SEPARATOR>0
StringReplace>%LapMillisecondsTickCount%,%COMMA%,.,LapMillisecondsTickCount
ENDIF
VBEval>FormatNumber(%LapMillisecondsTickCount%,2,-2,-2,0),ElapsedLapMilliseconds
Position>%COMMA%,%ElapsedLapMilliseconds%,1,DEC_SEPARATOR
IF>DEC_SEPARATOR>0
StringReplace>%ElapsedLapMilliseconds%,%COMMA%,.,ElapsedLapMilliseconds
ENDIF
Position>.,%ElapsedLapMilliseconds%,1,DecPosition
IF>DecPosition>0
MidStr>%ElapsedLapMilliseconds%,%DecPosition%,10,MilLapSecDisplay
ELSE
Let>MilLapSecDisplay=00
ENDIF
Let>ElapsedSeconds={Round(%TimeDiff%)}
Let>DaysElapsed={%ElapsedSeconds% DIV 86400}
Let>ElapsedSeconds={%ElapsedSeconds% MOD 86400}
Let>HoursElapsed={%ElapsedSeconds% DIV 3600}
Let>ElapsedSeconds={%ElapsedSeconds% MOD 3600}
Let>MinutesElapsed={%ElapsedSeconds% DIV 60}
Let>SecondsElapsed={%ElapsedSeconds% MOD 60}
Len>%DaysElapsed%,ddLen
Len>%HoursElapsed%,hhLen
Len>%MinutesElapsed%,mmLen
Len>%SecondsElapsed%,ssLen
IF>ddLen=1
Let>DaysElapsed=0%DaysElapsed%
ENDIF
IF>hhLen=1
Let>HoursElapsed=0%HoursElapsed%
ENDIF
IF>mmLen=1
Let>MinutesElapsed=0%MinutesElapsed%
ENDIF
IF>ssLen=1
Let>SecondsElapsed=0%SecondsElapsed%
ENDIF
Let>DisplayDiff=(%DaysElapsed%:%HoursElapsed%:%MinutesElapsed%:%SecondsElapsed%%MilLapSecDisplay%)
ENDIF
IF>LapCounter=0
Let>TimeDiff=0
Let>DisplayDiff=
ENDIF
Add>LapCounter,1
Let>LapTickCount=%EndTimer%-%StartTimer%
//<--Start > Saved Time Function
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Count,%LapCounter%
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Time,%LapTickCount%
Let>LapTimesRes=Lap %LapCounter%: %DisplayCounter%%MilSecDisplay% %DisplayDiff%%CRLF%%SavedLaps%
StringReplace>%LapTimesRes%,%CRLF%,;,LapTimesRes
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Times,%LapTimesRes%
//<--End > Saved Time Function
IF>LapCounter=1
SetDialogProperty>Dialog1,MSListBox1,Text,Lap %LapCounter%: %DisplayCounter%%MilSecDisplay%%CRLF%%SavedLaps%
ELSE
SetDialogProperty>Dialog1,MSListBox1,Text,Lap %LapCounter%: %DisplayCounter%%MilSecDisplay% %DisplayDiff%%CRLF%%SavedLaps%
ENDIF
GetDialogProperty>Dialog1,MSListBox1,Text,SavedLaps
SetDialogProperty>Dialog1,StatusBar3,SimpleText,Lap %LapCounter%: %DisplayCounter%%MilSecDisplay% %DisplayDiff%
//<--Start > Saved Time Function
IF>TimerPaused=False
IF>HasBeenReset=True
Year>YY
Month>MM
Day>DD
Hour>HH
Min>NN
Sec>SS
GetTime>TheTime
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,%YY%/%MM%/%DD% %TheTime%
ELSE
Let>NumOfSecToAdd={Round(%NumOfSecPaused%)}
ReadIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,SavedTimeRes
VBEval>dateadd("s", "%NumOfSecPaused%", "%SavedTimeRes%"),NewTimeRes
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,%NewTimeRes%
ENDIF
ELSE
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Count,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Time,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Times,
ENDIF
//<--End > Saved Time Function
Wait>.2
END>SetOneEventLapTime
SRT>SetPauseState
IF>TimerPaused=True
Let>TimerPaused=False
SetDialogProperty>Dialog1,MenuItem23,Caption,Stop
SetDialogProperty>Dialog1,MenuItem42,Caption,Stop (Ctrl+Alt+S)
ELSE
SetDialogProperty>Dialog1,MenuItem23,Caption,Start
SetDialogProperty>Dialog1,MenuItem42,Caption,Start (Ctrl+Alt+S)
Let>TimerPaused=True
ENDIF
END>SetPauseState
SRT>SetOneEventPauseState
IF>TimerPaused=True
Let>TimerPaused=False
SetDialogProperty>Dialog1,MenuItem23,Caption,Stop
SetDialogProperty>Dialog1,MenuItem42,Caption,Stop (Ctrl+Alt+S)
ELSE
SetDialogProperty>Dialog1,MenuItem23,Caption,Start
SetDialogProperty>Dialog1,MenuItem42,Caption,Start (Ctrl+Alt+S)
Let>TimerPaused=True
ENDIF
Wait>.1
END>SetOneEventPauseState
SRT>ResetTimer
SetDialogProperty>Dialog1,Edit1,Text,00:00:00:00.00
SetDialogProperty>Dialog1,StatusBar1,SimpleText,00:00:00:00.00
Let>HasBeenReset=True
Let>SavedTickCount=0
Let>SavedLaps=
Timer>StartTimer
Let>LapCounter=0
SetDialogProperty>Dialog1,MSListBox1,Text,
SetDialogProperty>Dialog1,StatusBar3,SimpleText,
Let>DaysElapsed=00
Let>HoursElapsed=00
Let>MinutesElapsed=00
Let>SecondsElapsed=00
Let>MilSecDisplay=.00
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Count,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Time,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Times,
END>ResetTimer
SRT>ClearLapList
Let>LapCounter=0
Let>LapTickCount=0
Let>SavedLaps=
SetDialogProperty>Dialog1,MSListBox1,Text,
SetDialogProperty>Dialog1,StatusBar3,SimpleText,
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Count,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Time,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Times,
END>ClearLapList
SRT>OpenFile
SetDialogProperty>Dialog1,,Visible,False
SetDialogProperty>Dialog1,MSButton1,Filename,
SetDialogProperty>Dialog1,MSButton1,BrowseStyle,fbOpen
SetDialogProperty>Dialog1,MSButton1,DoBrowse,True
GetDialogProperty>Dialog1,MSButton1,Filename,strFileName
ExtractFileName>%strFileName%,FileNameRes
IF>FileNameRes<>
ExecuteFile>strFileName
ENDIF
SetDialogProperty>Dialog1,MSButton1,DoBrowse,False
SetDialogProperty>Dialog1,MSButton1,Filename,Lap Times.txt
SetDialogProperty>Dialog1,,Visible,True
END>OpenFile
SRT>SaveLapTimes
SetDialogProperty>Dialog1,,Visible,False
GetDialogProperty>Dialog1,MSListBox1,Text,SavedLaps
IF>SavedLaps=
LibFunc>user32,MessageBoxA,r,0,No laps to save,Stopwatch,270400
ELSE
SetDialogProperty>Dialog1,MSButton1,Filename,
SetDialogProperty>Dialog1,MSButton1,BrowseStyle,fbSave
SetDialogProperty>Dialog1,MSButton1,DoBrowse,True
GetDialogProperty>Dialog1,MSButton1,Filename,strFileName
ExtractFileName>%strFileName%,FileNameRes
IF>FileNameRes<>
GetDialogProperty>Dialog1,MSListBox1,Text,SavedLaps
Del>%strFileName%
ExtractFileExt>%strFileName%,ExtRes
IF>ExtRes=.txt
WriteLn>%strFileName%,res,%SavedLaps%
ELSE
WriteLn>%strFileName%.txt,res,%SavedLaps%
ENDIF
ENDIF
ENDIF
SetDialogProperty>Dialog1,MSButton1,DoBrowse,False
SetDialogProperty>Dialog1,,Visible,True
END>SaveLapTimes
SRT>SetOnTop
GetDialogProperty>Dialog1,MenuItem9,Checked,res
IF>res=True
SetDialogProperty>Dialog1,,FormStyle,fsStayOnTop
ELSE
SetDialogProperty>Dialog1,,FormStyle,fsNormal
ENDIF
END>SetOnTop
SRT>ShrinkWindow
GetDialogProperty>Dialog1,MenuItem7,Caption,CaptionRes
IF>CaptionRes=S&hrink Window
SetDialogProperty>Dialog1,,BorderIcons,[biMinimize, biSystemMenu]
SetDialogProperty>Dialog1,,BorderStyle,bsSingle
SetDialogProperty>Dialog1,Panel1,BevelInner,bvNone
SetDialogProperty>Dialog1,Panel1,BevelKind,bvNone
SetDialogProperty>Dialog1,Panel1,BevelOuter,bvNone
SetDialogProperty>Dialog1,Panel2,AutoSize,True
SetDialogProperty>Dialog1,Panel3,Visible,False
SetDialogProperty>Dialog1,Panel4,Visible,False
SetDialogProperty>Dialog1,MenuItem7,Caption,Restore Window
GetDialogProperty>Dialog1,,Height,TheHeight
GetDialogProperty>Dialog1,,Width,TheWidth
GetDialogProperty>Dialog1,Panel5,Width,Panel5TheWidth
Add>Panel5TheWidth,50
SetDialogProperty>Dialog1,,Width,%Panel5TheWidth%
SetDialogProperty>Dialog1,,Height,%DialogHeight%
SetDialogProperty>Dialog1,,AutoSize,True
SetDialogProperty>Dialog1,,AutoSize,False
ELSE
SetDialogProperty>Dialog1,,BorderIcons,[biMaximize, biMinimize, biSystemMenu]
SetDialogProperty>Dialog1,,BorderStyle,bsSizeable
SetDialogProperty>Dialog1,Panel1,BevelInner,bvRaised
SetDialogProperty>Dialog1,Panel1,BevelKind,bkTile
SetDialogProperty>Dialog1,Panel1,BevelOuter,bvRaised
SetDialogProperty>Dialog1,Panel2,AutoSize,False
SetDialogProperty>Dialog1,Panel3,Visible,True
SetDialogProperty>Dialog1,Panel4,Visible,True
SetDialogProperty>Dialog1,MenuItem7,Caption,S&hrink Window
SetDialogProperty>Dialog1,,Height,TheHeight
SetDialogProperty>Dialog1,,Width,TheWidth
ENDIF
END>ShrinkWindow
SRT>Resize
GetDialogProperty>Dialog1,,Width,TheDialogWidth
GetDialogProperty>Dialog1,MSListBox1,Text,SavedLaps
IF>SavedLaps=
SetDialogProperty>Dialog1,MSListBox1,ScrollWidth,0
ELSE
IF>{(%TheDialogWidth%<400)}
SetDialogProperty>Dialog1,MSListBox1,ScrollWidth,370
ELSE
SetDialogProperty>Dialog1,MSListBox1,ScrollWidth,0
ENDIF
ENDIF
IF>{(%TheDialogWidth%>301)}
Let>Font_Name=Arial Black
Let>Font_Size=26
Let>Font_Style=1
SetDialogProperty>Dialog1,Panel1,Height,60
SetDialogObjectFont>Dialog1,Edit1,Font_Name,Font_Size,Font_Style,Font_Color
ENDIF
IF>{(%TheDialogWidth%<301)AND(%TheDialogWidth%>280)}
Let>Font_Name=Arial Black
Let>Font_Size=24
Let>Font_Style=1
SetDialogProperty>Dialog1,Panel1,Height,55
SetDialogObjectFont>Dialog1,Edit1,Font_Name,Font_Size,Font_Style,Font_Color
ENDIF
IF>{(%TheDialogWidth%<280)AND(%TheDialogWidth%>260)}
Let>Font_Name=Arial Black
Let>Font_Size=22
Let>Font_Style=1
SetDialogProperty>Dialog1,Panel1,Height,50
SetDialogObjectFont>Dialog1,Edit1,Font_Name,Font_Size,Font_Style,Font_Color
ENDIF
IF>{(%TheDialogWidth%<260)AND(%TheDialogWidth%>245)}
Let>Font_Name=Arial Black
Let>Font_Size=20
Let>Font_Style=1
SetDialogProperty>Dialog1,Panel1,Height,45
SetDialogObjectFont>Dialog1,Edit1,Font_Name,Font_Size,Font_Style,Font_Color
ENDIF
IF>{(%TheDialogWidth%<245)AND(%TheDialogWidth%>220)}
Let>Font_Name=Arial Black
Let>Font_Size=18
Let>Font_Style=1
SetDialogProperty>Dialog1,Panel1,Height,40
SetDialogObjectFont>Dialog1,Edit1,Font_Name,Font_Size,Font_Style,Font_Color
ENDIF
IF>{(%TheDialogWidth%<220)AND(%TheDialogWidth%>195)}
Let>Font_Name=Arial Black
Let>Font_Size=16
Let>Font_Style=1
SetDialogProperty>Dialog1,Panel1,Height,35
SetDialogObjectFont>Dialog1,Edit1,Font_Name,Font_Size,Font_Style,Font_Color
ENDIF
IF>{(%TheDialogWidth%<195)AND(%TheDialogWidth%>180)}
Let>Font_Name=Arial Black
Let>Font_Size=14
Let>Font_Style=1
SetDialogProperty>Dialog1,Panel1,Height,32
SetDialogObjectFont>Dialog1,Edit1,Font_Name,Font_Size,Font_Style,Font_Color
ENDIF
IF>{(%TheDialogWidth%<180)AND(%TheDialogWidth%>160)}
Let>Font_Name=Arial Black
Let>Font_Size=12
Let>Font_Style=1
SetDialogProperty>Dialog1,Panel1,Height,29
SetDialogObjectFont>Dialog1,Edit1,Font_Name,Font_Size,Font_Style,Font_Color
ENDIF
IF>{(%TheDialogWidth%<160)AND(%TheDialogWidth%>0)}
Let>Font_Name=Arial
Let>Font_Size=10
Let>Font_Style=1
SetDialogProperty>Dialog1,Panel1,Height,25
SetDialogObjectFont>Dialog1,Edit1,Font_Name,Font_Size,Font_Style,Font_Color
ENDIF
END>Resize
SRT>MinimizeToTray
IfFileExists>%TEMP_DIR%-cp-stop-watch-icon.ico
ELSE
ExportData>STOPWATCH16X16.ICO_DATA,%TEMP_DIR%-cp-stop-watch-icon.ico
ENDIF
GetDialogProperty>Dialog1,,Visible,dResult
If>dResult=False
SetDialogProperty>Dialog1,,Visible,True
Endif
ModTrayIcon>MyTrayIcon,Click to Show Stopwatch,,True
SetDialogProperty>Dialog1,,Visible,False
Wait>.2
END>MinimizeToTray
SRT>ShowStopwatch
SetDialogProperty>Dialog1,,Visible,True
ModTrayIcon>MyTrayIcon,Click to Show Stopwatch,,False
Wait>.2
END>ShowStopwatch
SRT>SetOpacity
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Opacity,%SetOpacity_Var_1%
IF>%SetOpacity_Var_1%=False
SetDialogProperty>Dialog1,,AlphaBlend,False
SetDialogProperty>Dialog1,,AlphaBlendValue,255
SetDialogProperty>Dialog1,MenuItem22,Checked,True
Else
Let>OpacityValue=%SetOpacity_Var_1%
SetDialogProperty>Dialog1,,AlphaBlend,True
SetDialogProperty>Dialog1,,AlphaBlendValue,%OpacityValue%
SetDialogProperty>Dialog1,MenuItem22,Checked,False
Endif
END>SetOpacity
SRT>SetFontColor
Let>Font_Color=%SetFontColor_Var_1%
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Font Color,%SetFontColor_Var_1%
SetDialogObjectFont>Dialog1,Edit1,Font_Name,Font_Size,Font_Style,Font_Color
SetDialogObjectFont>Dialog1,MSListBox1,Arial Black,12,1,Font_Color
END>SetFontColor
SRT>ExitScript
//<--Start > Saved Time Function
IF>TimerPaused=False
IF>HasBeenReset=True
Year>YY
Month>MM
Day>DD
Hour>HH
Min>NN
Sec>SS
GetTime>TheTime
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,%YY%/%MM%/%DD% %TheTime%
ELSE
Let>NumOfSecToAdd={Round(%NumOfSecPaused%)}
ReadIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,SavedTimeRes
VBEval>dateadd("s", "%NumOfSecPaused%", "%SavedTimeRes%"),NewTimeRes
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,%NewTimeRes%
ENDIF
ELSE
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Count,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Time,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Saved Time,0
EditIniFile>%IniDir%\Stopwatch.ini,Settings,Lap Times,
ENDIF
//<--End > Saved Time Function
Exit>1
END>ExitScript
/*
STOPWATCH16X16.ICO_DATA:
00000100020012120000010020008005000026000000101000000100200068040000A6050000280000001200000024000000010020000000000058050000000000000000000000000000000000005D4D4A001E94B300615957024B434000860000005606002E35292797283032DC263D36FE212E2EE8231E1FAD36000048012
C270000302E004F00000100929400342D2B003A302D005D504D018107000169504D00653C341A444B4B9D2E686CFE28979EFF2AC3CBFE25B6D6FE2BC6D4FE28A7AEFE216D72FF263E41C3400A033563000000341F1E012F39390052000000554847070DB5E40069504C224B5758C9289394FF28DCE4FA40EDF8FD4EF5FBFD4F
D6F7FE54EFFBFD4EF2FBFD3CEDF5FA23ACB1FF264F51EA38211E4A450000003F1008018A000000895C4D0213B6E30E5A605FAB2A9397FF26CEE6F44BE5ECFD4CE5E7FE4ADAE4FE4DE7E7FE4FE0E6FE55E4E9FD58E7F1FE43E3F8F523AFB8FE2C5052D73C2D2E2A0A98AD00267278052F6A7B009D3E27583C7F84FF1FD8DBF73
9D1F0FD3F7FCBFE4EC1C6FE47DDDDFE49CEDCFE4DD7DDFF58D6D8FE4DD7E4FD4ACDEEFE40F0F8F5259399FF3B3939900893A703279AA9040E7B9E1A617A7CA72B9EA7FD27E4F1F931F2F0FE2AAEE5FD3F76D2FF49D0D2FD4BDBD8FF4ED2DBFE5ACAD1FF4CE1E8FE42EDF2FE4AF0F8F92CC1CBFB356366D8A8000022531E1700
FF6C5359587F7FDB1CC0C3FE28EAF3FC2BDDE9FE2AF9F1FE28B2E8FE4072CEFE49B8C6FE4CC1C2FE51CED6FE41E3ECFE3BE7F2FE44EAF2FC32E6E8FA317E81FB533B39462B525A00D18A7783578585FB10A4C7FE28E1F4FD21E3E9FF2ADCEAFD22F9F1FF1EA5E0FF406C89FF2FB7B8FF30EDF7FF35E4EDFD36E7EFFE3FE6F0F
E2CCAF0F730818AFF624B41572B726300E19A897E5D8786F60BAAC3FE1FE6F4FE1CE0E7FE20DFEAFE0FE9F9FE46BBB3FF6F6052FF5E9894FF29EDF7FE2DE5F0FE30E3EBFD38E7F0FE26D3ECF635838BFF6D544D55246D6700FFC9B84B6E8A89D117B0B5FE12E4EDFB19DEE7FE0EE9F4FE43BBBDFE51A3A1FE2CB6BCFF44A8A9
FE5BAEACFE2BE2EBFE29E4ECFE2FE7F1FB21D1DAFB408183F9785E583F585C5B000E3B3C12989B9699369397FF00D4E1F80FE9F6FF41B5B6FE49B7B6FE10EAF5FE15E8F3FE12EBF7FE35C7CCFE35CCD1FE1FE7F4FF22E8F3F820ABB3FD5F7776CCAC60551A537A7C0051635E009E9B9143658888F505A9AFF80EC9ECFA2BB9D
0FF0CE3EBFD0FDDE9FE13DBE5FF16DBE5FE11E9F2FD18DBEFFF25C7EBFD0DCAD3F63C8A8CFF79807878A4857F001D9EAC04E1D1C805FFECEC07D3DAD28B518889FF009CABF600E2F2FA07E6F0FE0CE0EBFE0DE7EDFE11E3EDFD13E2ECFE11E1EEFC06BACAF4308B90FF808885C0B87A7E16A5837C00A8807504829797087372
6700592A2913BBBAB6A2629694FF18999EFF00B6C1FC00D4DBFE06BAE3FE00CEDDFE00C2CEFD0CABB2FE419695FF83908EC8A797932FBB697700A5847D01B47F71008D9F9E000000000156373600FFFFFF0EC3BBB86F7E8F8EEA5D9292FD2A898BFC1E7689FF298B92FC4E9494FD6D8989F889898796C1AAA31F948F8B00BC6
97701A5847D008289850097A4A200000C0000FFFFFF027778770064666500797573A6AFACA9FFD5D2D1F9BABDB4FEA7A49FFA8A8783FF756E6DCF846D6A0E685B5A008B858204BB6D79000000000000000000000000001F332200D7FCF6009496960471767500686D6AA3AFAFAEFEFFFFFFF8E1E0DFFFA8A8A6FA6D6D6DFE5F
6262CD95767215443D3F02787A7B0200000000000000000000000000000000000000008F8C8900818683014D535002656A6568979C99EDD8DCDCFDC1C9C7FC8E9393FC636667F96F70709488807D10727675018A888700000000000000000000000000FC1FC000F007C000E003C000C001C000C000C0008000C0008000C0000
000C0000000C0008000C0008000C000C000C000C001C000E003C000F007C000F80FC000F80FC000F80FC000280000001000000020000000010020000000000040040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000464646404040409F3B3B3BDF353535FF313131DF2E2E2E9F2C2C2C4000000000000000000000000000000000000000000000000000000000000000005656569F485D5FFF288D95FF1BA9B2FF15B8C3FF1AACB6FF228D95FF2F4647F
F3131319F0000000000000000000000000000000000000000000000006767679F4E7376FF1BAAB3FF2FCED7FF44E2EAFF1D91DFFF49E4ECFF37D4DDFF1CB5C0FF315E61FF3939399F000000000000000000000000000000007979794066787AFF1BA2ACFF1D91DFFF46EBF3FF46EBF3FF49ECF4FF4DEDF4FF50EDF5FF1D91DF
FF1CB2BCFF3E5455FF444444400000000000000000000000008383839F3C8E94FF22C1CBFF2CE5EFFF3636D4FF43EAF3FF43EAF3FF43EAF3FF46EBF3FF4BECF4FF30CED8FF2A8E95FF4F4F4F9F0000000000000000000000008F8F8FDF208F96FF23D6E0FF2CE5EFFF2CE5EFFF3636D4FF43EAF3FF39E9F2FF3DE9F2FF40EAF
3FF3BDFE7FF1CA0A9FF5B5B5BDF0000000000000000000000009A9A9AFF0F8890FF1D91DFFF22E4EEFF2CE5EFFF2CE5EFFF4D4D4DFF34E7F1FF34E7F1FF37E8F1FF1D91DFFF13A2ACFF666666FF000000000000000000000000A4A4A4DF22868CFF14D6E0FF18E2ECFF2CE5EFFF4D4D4DFF19E2EDFF7F877AFF34E7F1FF2DE6
EFFF2AD9E2FF1F97A0FF737373DF000000000000000000000000AEAEAE9F4E8E92FF0DAFB9FF22E4EEFF4D4D4DFF19E2EDFF19E2EDFF19E2EDFF7F877AFF2DE6EFFF1CBDC6FF3D8E93FF8080809F000000000000000000000000B8B8B840A4AFAFFF3D8687FF1D91DFFF0CDFEAFF0CDFEAFF0FE0EBFF13E0EBFF13E0EBFF1D9
1DFFF1A9199FF818F90FF8A8A8A4000000000000000000000000000000000BFBFBF9FAFB1AEFF3D8383FF07AAB3FF05CBD5FF1D91DFFF09CDD8FF0EB0B9FF198990FF7E989AFF9A9A9A9F000000000000000000000000000000000000000000000000C5C5C59FB0BABAFF578F92FF26797EFF0C6F76FF257C82FF508E93FF9C
A7A8FFA8A8A89F000000000000000000000000000000000000000000000000000000000000000090928FFFD2D2D2FFC7C7C7FFC2C2C2FFB1B1B1FF939393FF7E7E7EFF0000000000000000000000000000000000000000000000000000000000000000000000007E817DFFE8E8E8FFB8B8B8FF646464FF646464FF4B4B4BFF6
56565FF00000000000000000000000000000000000000000000000000000000000000000000000000000000787B76FFE8E8E8FF5E5E5EFF494949FF656565FF000000000000000000000000000000000000000000000000FFFF0000F01F0000E00F0000C0070000800300008003000080030000800300008003000080030000
80030000C0070000E00F0000F01F0000F01F0000F83F0000
*/