Jump to content

Recommended Posts

Posted

can i use case to detect GUICtrlCreateUpDown(-1) if was click up or down button ?

$_wait_input = GUICtrlCreateInput("2000", 730, 40, 74, 20)

$_wait_X = GUICtrlCreateUpDown($_wait_input)

Switch GUIGetMsg()
        Case $_wait_X
            If $_wait_X = True Then
                ConsoleWrite("$_wait_X 1" & @CRLF)
            Else
;~                 If $_wait_X = False Then
                    ConsoleWrite("$_wait_X 2" & @CRLF)
            EndIf

 

or my destiny is input with updown when value its <1 its beacome decimal

mean if u have value 2 and click down u have 1 but if u have 1 and click down it go 0.9 up to 0

if i know how detect up or down was clicked i can try continue or i made 2 buttons looks like updown control ??

Posted

You can use a quicker approach where you keep previous value and compare with new value.  I personally prefer a more "elegant" solution using WM_NOTIFY.  Following both ways in same example :

#include <GUIConstants.au3>
#include <Constants.au3>
#include <StructureConstants.au3>

Global Const $UDN_DELTAPOS = -722
Global Const $tagNMUPDOWN = $tagNMHDR & ";int iPos;int iDelta"
Global $hUpDown

Example()

Func Example()
  GUICreate("My GUI UpDown", -1, -1, -1, -1, $WS_SIZEBOX)
  Local $iStart = 2
  Local $idInput = GUICtrlCreateInput($iStart, 10, 10, 100, 20)
  Local $idUpDown = GUICtrlCreateUpdown($idInput)
  $hUpDown = GUICtrlGetHandle($idUpDown)

  GUIRegisterMsg($WM_NOTIFY, WM_NOTIFY)

  GUISetState()

  While True
    Switch GUIGetMsg()
      Case $GUI_EVENT_CLOSE
        ExitLoop
      Case $idUpDown
        ConsoleWrite(GUICtrlRead($idInput) - $iStart & @CRLF)
        $iStart = GUICtrlRead($idInput)
    EndSwitch
  WEnd
EndFunc   ;==>Example

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
  Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam), $tNMUPDOWN
  If $tNMHDR.hWndFrom = $hUpDown And $tNMHDR.Code = $UDN_DELTAPOS Then
    $tNMUPDOWN = DllStructCreate($tagNMUPDOWN, $lParam)
    ConsoleWrite($tNMUPDOWN.iPos & "/" & $tNMUPDOWN.iDelta & @CRLF)
  EndIf
  Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

 

  • Moderators
Posted

Verssuss,

And just for fun, a dummy updown:

#include <GUIConstantsEx.au3>

$hGUI = GUICreate("Test", 500, 500)

$cInput = GUICtrlCreateInput(1, 10, 10, 50, 20)

$cDummyInput = GUICtrlCreateInput(10, 75, 10, 1, 20)
$cUpDown = GUICtrlCreateUpdown($cDummyInput)
GUICtrlSetLimit($cUpDown, 19, 0)

GUISetState()

While 1

    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $cDummyInput
            _SetData()
    EndSwitch

WEnd

Func _SetData()

    Local $iDummy = Number(GUICtrlRead($cDummyInput))
    If $iDummy >= 10 Then
        GUICtrlSetData($cInput, $iDummy - 9)
    Else
        GUICtrlSetData($cInput, "." & $iDummy)
    EndIf

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Posted
3 hours ago, Jos said:

just read the value with:

$ival=GUICtrlRead($_wait_input).

Like shown in the helpfile example.

it just read value of input i want detect if up or down was used

 

$_wait_input = GUICtrlCreateInput("2000", 730, 40, 74, 20)

$_wait_X = GUICtrlCreateUpDown($_wait_input)

    Case $_wait_X
            $iva1=GUICtrlRead($_wait_input)
            $iva2=GUICtrlRead($_wait_X)
            ConsoleWrite("1: " & $ival & "/2: "& $iva2 & @CRLF)

wm_notify need read so many data to do simple thing

thx melba for best suggestion u just missed 0 before . 
here is full what i need

 

#include <GUIConstantsEx.au3>
$hGUI = GUICreate("Test", 500, 500)
$cDummyInput = GUICtrlCreateInput(1, 10, 50, 50, 30)
GUICtrlCreateUpdown(-1)
GUISetState()
Local $max = False
While 1

    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $cDummyInput
            _SetData()
    EndSwitch

WEnd

Func _SetData()
    If GUICtrlRead($cDummyInput) = 0 and $max = False Then
        GUICtrlSetData($cDummyInput, "0.9")
    EndIf
    If GUICtrlRead($cDummyInput) = -1 and $max = False Then
        GUICtrlSetData($cDummyInput, "0.8")
    EndIf
    If GUICtrlRead($cDummyInput) = -2 and $max = False Then
        GUICtrlSetData($cDummyInput, "0.7")
    EndIf
    If GUICtrlRead($cDummyInput) = -3 and $max = False Then
        GUICtrlSetData($cDummyInput, "0.6")
    EndIf
    If GUICtrlRead($cDummyInput) = -4 and $max = False Then
        GUICtrlSetData($cDummyInput, "0.5")
    EndIf
    If GUICtrlRead($cDummyInput) = -5 and $max = False Then
        GUICtrlSetData($cDummyInput, "0.4")
    EndIf
    If GUICtrlRead($cDummyInput) = -6 and $max = False Then
        GUICtrlSetData($cDummyInput, "0.3")
    EndIf
    If GUICtrlRead($cDummyInput) = -7 and $max = False Then
        GUICtrlSetData($cDummyInput, "0.2")
    EndIf
    If GUICtrlRead($cDummyInput) = -8 and $max = False Then
        GUICtrlSetData($cDummyInput, "0.1")
    EndIf
    If GUICtrlRead($cDummyInput) = -9 and $max = False Then
        $max = True
        GUICtrlSetData($cDummyInput, "0")
    EndIf
    If GUICtrlRead($cDummyInput) > 0 Then
        $max = False
    EndIf
        If GUICtrlRead($cDummyInput) < 0 Then
        GUICtrlSetData($cDummyInput, "0")
    EndIf


EndFunc


now just insert here right For loop
but cant find now

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
  • Recently Browsing   0 members

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