Jump to content
bowker

GUICtrlCreateInput vs InputBox

Recommended Posts

bowker

Hi there! I don't know if I'm posting it in the right place, but yeah, sorry for that :D
Anyway, Does GUICtrlCreateInput() have the functionality for mandatory Input like InputBox()?  I know that in InputBox(), putting the letter M after the first character indicates that input is mandatory, so clicking the ok button will do nothing. Does GuiCtrlCreateInput() have one? or do I need to manually do it using condition and loops?

Share this post


Link to post
Share on other sites
Subz

An InputBox is a standalone function, whereas GuiCtrlCreateInput requires it's own Gui, within the Gui you can define these settings for example before the user clicks submit, you can get it to check that the input has a value etc..., basic example below.

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiEdit.au3>
Example()

Func Example()
    GUICreate(" My GUI input acceptfile", 320, 120, @DesktopWidth / 2 - 160, @DesktopHeight / 2 - 45, -1, $WS_EX_ACCEPTFILES)
    Local $idInput1 = GUICtrlCreateInput("", 10, 5, 205, 20)
        _GUICtrlEdit_SetCueBanner ($idInput1, "<Folder Path> *Required", True)
    Local $idBrowse = GUICtrlCreateButton("Browse...", 220, 5, 90, 20)
    Local $idInput2 = GUICtrlCreateInput("", 10, 35, 300, 20)
    Local $idBtn = GUICtrlCreateButton("Ok", 40, 75, 60, 20)

    GUISetState(@SW_SHOW)

    ; Loop until the user exits.
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $idBrowse
                Local $sBrowse = FileSelectFolder("Please Select Folder...", "")
                If @error Then ContinueLoop
                GUICtrlSetData($idInput1, $sBrowse)
            Case $idBtn
                If GUICtrlRead($idInput1) = "" Then ContinueLoop MsgBox(4096, "InputBox1", "Select Folder Path Required")
                If FileExists(GUICtrlRead($idInput1)) = 0 Then ContinueLoop MsgBox(4096, "InputBox1", GUICtrlRead($idInput1) & " is not a valid folder path.")
        EndSwitch
    WEnd

EndFunc   ;==>Example

 

Share this post


Link to post
Share on other sites
JLogan3o13

@bowker in shorter answer to your question, No, there is no parameter you can use during initialization of the GuiCtrlCreateInput that will make it mandatory.


√-1 2^3 ∑ π, and it was delicious!

How to get your question answered on this forum!

Share this post


Link to post
Share on other sites
bowker

@JLogan3o13 I see. Thank you very much for answering :) 

@Subz Thank you for giving an example :) I will try to implement the logic to my code :)

Share this post


Link to post
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

  • Similar Content

    • SharpDressedMan
      By SharpDressedMan
      I have an array of subarrays, eg:
      local $a[3] = [ 1, 2, 3 ] local $b[3] = [ 4, 5, 6 ] local $c[2] = [ $a, $b ] I can read read a subarray element of the array, as follows:
      local $c12 = ($c[1])[2] ; result: $c12 = 6 However, when I try to set a subarray element as follows, it fails:
      ($c[1])[2] = 12 ; this fails to set subarray element local $c12 = ($c[1])[2] ; result: $c12 = 6 How to set a subarray element ?
      Thanks
    • nooneclose
      By nooneclose
      Good morning everyone, I thought I had already solved this issue but it turns out I did not. 
      My code finds unread emails with this specific subject line of "request" but when I change the subject to SKIPPED + "request" = ("SKIPPED request") the program still finds the email and tries to process it. I only want to process emails with the exact match subject of "request".
      Here is my code that "finds" the unread emails with the subject of "request" or so I thought. 
      Func ListUnreadEmails() ;******************************************************************************* ; Lists all unread E-mails from the folder Outlook-UDF-Test ;******************************************************************************* ; Stores all the unRead emails into an array Global $aItems = _OL_ItemFind($oOutlook, "*\Outlook-UDF-Test", $olMail, _ "[UnRead]=True", "Subject", "request", "EntryID,Subject", "", 1) ; Displays the array of unRead emails If IsArray($aItems) Then ;_ArrayDisplay($aItems, "OutlookEX UDF: _OL_ItemFind - Unread mails") Else MsgBox(48, "OutlookEX UDF: _OL_ItemFind Example Script", _ "Could not find an unread mail. @error = " & @error & ", @extended: " & @extended) EndIf ; Gets the number of unread emails Global $numberOfUnRead = UBound($aItems, $UBOUND_ROWS) - 1 ;MsgBox("", "Number of Unread emails", $numberOfUnRead) EndFunc It acts as if any part of the subject containing the word "request" and the email is unread that it will try to process it. (I think)
    • KhalidAnsari
      By KhalidAnsari
      Hi,
      I need to automate Java application using AutoIt, I have refer forum for the same, as per forum I am using Java Access Bridge to finding control name. But could not set value to control. Below is my sample code 
      Send("#r")
      sleep(1500)
      Send("D:\javaapplication\javaapplication\Hello.jar{Enter}")
      WinActivate("Penjumlahan")
      sleep(1500)
      ControlSetText("Penjumlahan", "", "Name:  A :", "demo")
      Java Application and Java Ferret screen

    • QaisBsharat
      By QaisBsharat
      Hello, 
      May i know how can i automation qt application?
      Using controlclick not mouse and positions
       
      Thanks
    • nooneclose
      By nooneclose
      Good afternoon, I am in need of some help. I am sure this is a stupid question requiring only one or two lines of code. However, I would greatly appreciate the help I cannot figure this out. I also tried searching for the answer on the internet but no one except me apparently seems to be having a hard time figuring this out and or is asking about it. 
      I simply want to change the "status" of an email from unread to read once I have processed it. My code is over 500 lines and I would like not to clutter this post with it. Assume I have all my includes and connections properly defined and stuff. 
      Here is the bit of code where I am trying to change the email that was used from unread to read:
      Func ChangeEmailStatus() ;******************************************************************************* ; changes the status of an email from unread to Read ;******************************************************************************* Local $iRows = UBound($aItems, $UBOUND_ROWS) MsgBox("", "Number of Unread emails (Before Change)", $iRows) _OL_ItemModify($oOutlook,$aItems[$i][0], Default, "Read=True") MsgBox("", "Array Display 1", $aItems[1][0]) MsgBox("", "Array Display 2", $aItems[2][0]) Local $iRows = UBound($aItems, $UBOUND_ROWS) MsgBox("", "Number of Unread emails (After Change)", $iRows) EndFunc  
×