Jump to content

arrays and fors are my nightmares.


alfa
 Share

Recommended Posts

Hello,

I am trying to display the values of the random numbers that are generated in the array in a listview.

I found out that i can use "_GUICtrlListView_AddArray" but it need 2 dimensional array. So cant just figure out how to put the numbers on the listview. :graduated:

thanks

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
#include <Array.au3>
#include <WindowsConstants.au3>
#Include <GuiListView.au3>
Opt('MustDeclareVars', 1)
_Main()
Func Terminate()
Exit 0
EndFunc   ;==>Terminate

Func _Main()
Local $button1, $button2, $button3, $button4, $button5, $button6, $button7
Local $output1, $output2, $output3, $output4, $output5, $output6, $output7
Local $d1, $d2, $d3, $d4, $d5, $d6, $d7, $d
Local $aaa, $msg, $Val, $sum
Local $Edit1, $hListView

GUICreate("ZarcI", 305, 255, -1, -1, $WS_EX_TOPMOST)
$d1 = GUICtrlCreateInput("1", 5, 15, 30, 30)
GUICtrlCreateUpdown(-1)
GUICtrlCreateLabel("d4", 40, 25)
$button1 = GUICtrlCreateButton("Salla", 70, 20, 40, 20)
$output1 = GUICtrlCreateLabel("", 120, 15, 30, 30, BitOR($BS_PUSHLIKE, $SS_CENTER))
GUICtrlSetFont(-1, 9, 800, "", "Comic Sans MS")
$hListView = GUICtrlCreateListView("", 176, 16, 105, 217)
GUICtrlSetData(-1, "")
_GUICtrlListView_AddColumn($hListView, "nedir", 100)
_GUICtrlListView_SetUnicodeFormat($hListView, False)
GUISetState()
; Run the GUI until the dialog is closed
While 1
  $msg = GUIGetMsg()
  Select
   ;button1
   Case $msg = $button1
    $aaa = GUICtrlRead($d1)
    Local $Val[$aaa]
    For $i = 0 To UBound($Val) - 1
      $Val[$i]= Random(1, 4, 1)
    Next
    $sum = 0
    For $i = 0 To Ubound($Val) -1
     $sum += $Val[$i]
    Next

    GUICtrlSetData($output1, $sum)
?
  ?
?
    _GUICtrlListView_AddArray($hListView, $Val)

   
  EndSelect
  If $msg = $GUI_EVENT_CLOSE Then ExitLoop
  HotKeySet("{ESC}", "Terminate")
WEnd
EndFunc   ;==>_Main
Link to comment
Share on other sites

_GUICtrlListView_AddItem($hListView,$Sum)

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
#include <Array.au3>
#include <WindowsConstants.au3>
#Include <GuiListView.au3>
Opt('MustDeclareVars', 1)
_Main()
Func Terminate()
Exit 0
EndFunc ;==>Terminate
 
Func _Main()
Local $button1, $button2, $button3, $button4, $button5, $button6, $button7
Local $output1, $output2, $output3, $output4, $output5, $output6, $output7
Local $d1, $d2, $d3, $d4, $d5, $d6, $d7, $d
Local $aaa, $msg, $Val, $sum
Local $Edit1, $hListView
 
GUICreate("ZarcI", 305, 255, -1, -1, $WS_EX_TOPMOST)
$d1 = GUICtrlCreateInput("1", 5, 15, 30, 30)
GUICtrlCreateUpdown(-1)
GUICtrlCreateLabel("d4", 40, 25)
$button1 = GUICtrlCreateButton("Salla", 70, 20, 40, 20)
$output1 = GUICtrlCreateLabel("", 120, 15, 30, 30, BitOR($BS_PUSHLIKE, $SS_CENTER))
GUICtrlSetFont(-1, 9, 800, "", "Comic Sans MS")
$hListView = GUICtrlCreateListView("", 176, 16, 105, 217)
GUICtrlSetData(-1, "")
_GUICtrlListView_AddColumn($hListView, "nedir", 100)
_GUICtrlListView_SetUnicodeFormat($hListView, False)
GUISetState()
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
Select
;button1
Case $msg = $button1
$aaa = GUICtrlRead($d1)
Local $Val[$aaa]
For $i = 0 To UBound($Val) - 1
$Val[$i]= Random(1, 4, 1)
Next
$sum = 0
For $i = 0 To Ubound($Val) -1
$sum += $Val[$i]
 
Next
_GUICtrlListView_AddItem($hListView,$Sum)
;GUICtrlSetData($output1, $sum)
;?
; ?
;?
;_GUICtrlListView_AddArray($hListView, $Val)
 
 
EndSelect
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
HotKeySet("{ESC}", "Terminate")
WEnd
Edited by ChrisL
Link to comment
Share on other sites

  • Moderators

alfa,

Just declare the array as 2D and then use the correct dimension syntax to fill/use it: ;)

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
#include <Array.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
Opt('MustDeclareVars', 1)

HotKeySet("{ESC}", "Terminate") ; Put this here <<<<<<<<<<<<<<<<<<<

_Main()

Func Terminate()
    Exit 0
EndFunc   ;==>Terminate

Func _Main()
    Local $button1, $button2, $button3, $button4, $button5, $button6, $button7
    Local $output1, $output2, $output3, $output4, $output5, $output6, $output7
    Local $d1, $d2, $d3, $d4, $d5, $d6, $d7, $d
    Local $aaa, $msg, $Val, $sum
    Local $Edit1, $hListView

    GUICreate("ZarcI", 305, 255, -1, -1, $WS_EX_TOPMOST)
    $d1 = GUICtrlCreateInput("1", 5, 15, 30, 30)
    GUICtrlCreateUpdown(-1)
    GUICtrlCreateLabel("d4", 40, 25)
    $button1 = GUICtrlCreateButton("Salla", 70, 20, 40, 20)
    $output1 = GUICtrlCreateLabel("", 120, 15, 30, 30, BitOR($BS_PUSHLIKE, $SS_CENTER))
    GUICtrlSetFont(-1, 9, 800, "", "Comic Sans MS")
    $hListView = GUICtrlCreateListView("   ", 176, 16, 105, 217)
    ;GUICtrlSetData(-1, "")
    _GUICtrlListView_AddColumn($hListView, "nedir", 100)
    _GUICtrlListView_SetUnicodeFormat($hListView, False)
    GUISetState()
    ; Run the GUI until the dialog is closed
    While 1
        $msg = GUIGetMsg()
        Select
            ;button1
            Case $msg = $button1
                $aaa = GUICtrlRead($d1)
                Local $Val[$aaa][1] ; Declare a 2D array <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                For $i = 0 To UBound($Val) - 1
                    $Val[$i][0] = Random(1, 4, 1) ; Fill the 2D array <<<<<<<<<<<<<<<<<
                Next
                $sum = 0
                For $i = 0 To UBound($Val) - 1
                    $sum += $Val[$i][0] ; Use the 2D array elements <<<<<<<<<<<<<<<
                Next

                GUICtrlSetData($output1, $sum)
                _GUICtrlListView_AddArray(GUICtrlGetHandle($hListView), $Val) ; And add the items <<<<<<<<<<<<<<<<<<

        EndSelect
        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
EndFunc   ;==>_Main

All clear now? :graduated:

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

 

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...