Jump to content

Limit Time


Dale2507
 Share

Recommended Posts

This script is a function primarily for limiting the times which things can be accessed. The script displays a gui (shown below) and when ok is clicked it will return a 2-dimensional array where the first dimension is the day (1-5) and the second dimension is the hour (1-24).

I have not displayed the code because it is 4596 lines (soon to be shortened).

post-23582-1191341777_thumb.jpg

limittimegui.au3

To use the function, include the file and call the function _LimitTimeGui ([title], [caption], [white squares], [blue squares])

Edit: Updated upload to a simplyfied script. Same effect but smaller.

Edited by Gmail
Link to comment
Share on other sites

Using arrays efficiently, you can see how much this script can be shortened

; test
#include <GuiConstants.au3>
#include <array.au3>
$info = _limittimegui("Limit Time GUI", "Try it")
_ArrayDisplay($info)
;===============================================================================
;
; Function Name:    _LimitTimeGui ([title], [caption], [white squares], [blue squares])
; Description:      Displays a GUI For easily controlling access
; Parameter(s):     $title   - Title For GUI (Default: Limit Time GUI)
;                   $caption - Text to display at top of GUI
;                   $white   - Text to display as key For white squares (Default: Accessable)
;                   $blue    - Text to display as key For blue squares (Default: Inaccessable)
; Requirement(s):   GUIConstants.au3
; Return Value(s):  On Success - Returns 2-dimensional array [day(1-7)][hour(1-24)] (no [0]'s in array)
;                   On Failure - Exit sets 0 and @error = 1
; Author(s):        Dale Edwards (A.K.A. Gmail)
;
;==============================================================================
Func _limittimegui($title = "Limit Time GUI", $caption = "", $white = "Accessable", $blue = "Inaccessable")
    Local $return[8][25], $Graphic[169], $GRead[169], $count
    
    $gui = GUICreate("" & $title & "", 476, 262, 193, 115, BitOR($WS_SYSMENU, $WS_CAPTION, $WS_POPUPWINDOW, $WS_BORDER, $WS_CLIPSIBLINGS))
    GUICtrlCreateLabel("Hours", 70, 37, 391, 20, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    
    Local $top = 66
    Local $left[25] = [25, 74, 90, 106, 122, 138, 154, 170, 186, 202, 218, 234, 250, 267, 283, 299, 315, 331, 347, 363, 379, 395, 411, 427, 443]
    For $i = 1 To 7
        $top += 17
        For $x = 1 To 24
            $count += 1
            $Graphic[$count] = GUICtrlCreateGraphic($left[$x], $top, 17, 17)
            GUICtrlSetBkColor(-1, 0xFFFFFF)
            $GRead[$count] = 0
        Next
    Next
    
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlCreateLabel("0", 69, 64, 10, 17)
    GUICtrlCreateLabel("2", 103, 64, 10, 17)
    GUICtrlCreateLabel("4", 134, 64, 10, 17)
    GUICtrlCreateLabel("6", 166, 64, 10, 17)
    GUICtrlCreateLabel("8", 197, 64, 10, 17)
    GUICtrlCreateLabel("10", 226, 64, 16, 17)
    GUICtrlCreateLabel("12", 259, 64, 16, 17)
    GUICtrlCreateLabel("14", 292, 64, 16, 17)
    GUICtrlCreateLabel("16", 323, 64, 16, 17)
    GUICtrlCreateLabel("18", 355, 64, 16, 17)
    GUICtrlCreateLabel("20", 387, 64, 16, 17)
    GUICtrlCreateLabel("22", 419, 64, 16, 17)
    GUICtrlCreateLabel("24", 451, 64, 16, 17)
    $mon = GUICtrlCreateButton("Monday", 11, 83, 61, 17)
    $tue = GUICtrlCreateButton("Tuesday", 11, 100, 61, 17)
    $wed = GUICtrlCreateButton("Wednesday", 11, 117, 61, 17)
    $thu = GUICtrlCreateButton("Thursday", 11, 134, 61, 17)
    $fri = GUICtrlCreateButton("Friday", 11, 151, 61, 17)
    $sat = GUICtrlCreateButton("Saturday", 11, 168, 61, 17)
    $sun = GUICtrlCreateButton("Sunday", 11, 185, 61, 17)
    $label = GUICtrlCreateLabel("" & $caption & "", 7, 8, 459, 17)
    $select = GUICtrlCreateButton("&Select All", 5, 224, 75, 25, 0)
    $deselect = GUICtrlCreateButton("&Deselect All", 85, 224, 75, 25, 0)
    GUICtrlCreateGraphic(175, 210, 16, 17)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlCreateLabel($white, 195, 212)
    GUICtrlCreateGraphic(175, 230, 16, 17)
    GUICtrlSetBkColor(-1, 0x1111ff)
    GUICtrlCreateLabel($blue, 195, 232)
    $ok = GUICtrlCreateButton("&OK", 392, 224, 75, 25, 0)
    GUISetState(@SW_SHOW)
    
    While 1
        $nMsg = GUIGetMsg()
        For $x = 1 To 168
            If $nMsg = $Graphic[$x] Then
                If $GRead[$x] = 0 Then
                    GUICtrlSetBkColor($Graphic[$x], 0x1111ff)
                    $GRead[$x] = 1
                Else
                    GUICtrlSetBkColor($Graphic[$x], 0xffffff)
                    $GRead[$x] = 0
                EndIf
            EndIf
        Next
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                GUIDelete($gui)
                SetError(1)
                Return 0
                ExitLoop
                
            Case $deselect
                For $x = 1 To 168
                    GUICtrlSetBkColor($Graphic[$x], 0xffffff)
                    $GRead[$x] = 0
                Next
                
            Case $select
                For $x = 1 To 168
                    GUICtrlSetBkColor($Graphic[$x], 0x1111ff)
                    $GRead[$x] = 1
                Next
                
            Case $mon
                For $x = 1 To 24
                    If $GRead[$x] = 0 Then
                        GUICtrlSetBkColor($Graphic[$x], 0x1111ff)
                        $GRead[$x] = 1
                    Else
                        GUICtrlSetBkColor($Graphic[$x], 0xffffff)
                        $GRead[$x] = 0
                    EndIf
                Next
                
            Case $tue
                For $x = 25 To 48
                    If $GRead[$x] = 0 Then
                        GUICtrlSetBkColor($Graphic[$x], 0x1111ff)
                        $GRead[$x] = 1
                    Else
                        GUICtrlSetBkColor($Graphic[$x], 0xffffff)
                        $GRead[$x] = 0
                    EndIf
                Next
                
            Case $wed
                For $x = 49 To 72
                    If $GRead[$x] = 0 Then
                        GUICtrlSetBkColor($Graphic[$x], 0x1111ff)
                        $GRead[$x] = 1
                    Else
                        GUICtrlSetBkColor($Graphic[$x], 0xffffff)
                        $GRead[$x] = 0
                    EndIf
                Next
                
            Case $thu
                For $x = 73 To 96
                    If $GRead[$x] = 0 Then
                        GUICtrlSetBkColor($Graphic[$x], 0x1111ff)
                        $GRead[$x] = 1
                    Else
                        GUICtrlSetBkColor($Graphic[$x], 0xffffff)
                        $GRead[$x] = 0
                    EndIf
                Next
                
            Case $fri
                For $x = 97 To 120
                    If $GRead[$x] = 0 Then
                        GUICtrlSetBkColor($Graphic[$x], 0x1111ff)
                        $GRead[$x] = 1
                    Else
                        GUICtrlSetBkColor($Graphic[$x], 0xffffff)
                        $GRead[$x] = 0
                    EndIf
                Next
                
            Case $sat
                For $x = 121 To 144
                    If $GRead[$x] = 0 Then
                        GUICtrlSetBkColor($Graphic[$x], 0x1111ff)
                        $GRead[$x] = 1
                    Else
                        GUICtrlSetBkColor($Graphic[$x], 0xffffff)
                        $GRead[$x] = 0
                    EndIf
                Next
                
            Case $sun
                For $x = 145 To 168
                    If $GRead[$x] = 0 Then
                        GUICtrlSetBkColor($Graphic[$x], 0x1111ff)
                        $GRead[$x] = 1
                    Else
                        GUICtrlSetBkColor($Graphic[$x], 0xffffff)
                        $GRead[$x] = 0
                    EndIf
                Next
                
            Case $ok
                $count = 0
                For $i = 1 To 7
                    For $x = 1 To 24
                        $count += 1
                        If $GRead[$count] = 1 Then
                            $return[$i][$x] = 1
                        Else
                            $return[$i][$x] = 0
                        EndIf
                    Next
                Next
                
                Return $return
        EndSwitch
    WEnd
EndFunc   ;==>_limittimegui

Hope that helps...

8)

NEWHeader1.png

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...