Hilfe bei Listbox/ Arrays

10/16/2011 13:09 Logtetsch#1
Hallo.
Ich habe mich eigentlich noch nie mit dem Thema "Arrays" befasst.
So beschloss ich im Internet nach ein paar Tutorials gesucht und bin fündig geworden. Ich habe das mit den 1Dymensionalen Arrays ganz gut Kappiert.
Nun wollt ich euch Fragen wie ich 2D Arrays einen Wert zuweisen kann.

Also bei 1D arrays ist das ja so!

PHP Code:
Local $Array1D[2]
$Array1D[0] = 0
$Array1D
[1] = 
Nun würd ich gerne wissen wie ich das mit den 2D Array´s machen kann.
Bisher weis ich nur wie ich diese deklarieren kann.

PHP Code:
Local $Array2D[5][2]           ; (5 Elemente) (2 Spalten)
$Array2D[0][1]        ; Wie kann ich dem Element und der Spalte einen Wert zuweisen
Wie kann ich dem Element und der Spalte einen Wert zuweisen?

Hätt ich fast vergessen :) Wie kann ich die Werte (Zahlen) in einer Listbox einfügen ?
10/16/2011 15:21 omer36#2
[Only registered and activated users can see links. Click Here To Register...]

Quote:
Wie kann ich die Werte (Zahlen) in einer Listbox einfügen ?
hmm? na einfach mit guictrlsetdata(list, array2d[x][y]) einfügen?


PHP Code:
Local $ar2D[5][2]
$ar2D[0][0] = 'Zeile1/Spalte1'
$ar2D[0][1] = 'Zeile1/Spalte2'
$ar2D[1][0] = 'Zeile2/Spalte1'
$ar2D[1][1] = 'Zeile2/Spalte2'
$ar2D[2][0] = 'Zeile3/Spalte1'
$ar2D[2][1] = 'Zeile3/Spalte2'
$ar2D[3][0] = 'Zeile4/Spalte1'
$ar2D[3][1] = 'Zeile4/Spalte2'
$ar2D[4][0] = 'Zeile5/Spalte1'
$ar2D[4][1] = 'Zeile5/Spalte2'

$form GUICreate(""455330192124)
$List1 GUICtrlCreateList(""3216377279)
GUISetState(@SW_SHOW)

For 
$i=0 To 4
    
For $x=0 To 1
        GUICtrlSetData
($List1$ar2D[$i][$x])
    
Next
Next


While 1
    
If GUIGetMsg() == -3 Then Exit
WEnd 
10/16/2011 15:33 Logtetsch#3
Quote:
Originally Posted by omer36 View Post
[Only registered and activated users can see links. Click Here To Register...]


hmm? na einfach mit guictrlsetdata(list, array2d[x][y]) einfügen?


PHP Code:
Local $ar2D[5][2]
$ar2D[0][0] = 'Zeile1/Spalte1'
$ar2D[0][1] = 'Zeile1/Spalte2'
$ar2D[1][0] = 'Zeile2/Spalte1'
$ar2D[1][1] = 'Zeile2/Spalte2'
$ar2D[2][0] = 'Zeile3/Spalte1'
$ar2D[2][1] = 'Zeile3/Spalte2'
$ar2D[3][0] = 'Zeile4/Spalte1'
$ar2D[3][1] = 'Zeile4/Spalte2'
$ar2D[4][0] = 'Zeile5/Spalte1'
$ar2D[4][1] = 'Zeile5/Spalte2'

$form GUICreate(""455330192124)
$List1 GUICtrlCreateList(""3216377279)
GUISetState(@SW_SHOW)

For 
$i=0 To 4
    
For $x=0 To 1
        GUICtrlSetData
($List1$ar2D[$i][$x])
    
Next
Next


While 1
    
If GUIGetMsg() == -3 Then Exit
WEnd 
Das wir aber nur Eindimensional in die Listbox eingetragen :/
Kann man es so machen, dass es 2D. enigetragen wird ?
10/16/2011 15:35 omer36#4
Quote:
Originally Posted by Logtetsch View Post
Das wir aber nur Eindimensional in die Listbox eingetragen :/
Kann man es so machen, dass es 2D. enigetragen wird ?
wie meinste das?
10/16/2011 15:58 Logtetsch#5
Quote:
Originally Posted by omer36 View Post
wie meinste das?
Was ich wollte war, dass die werte so stehen.

1 | 2
1 | 2
1 | 2
1 | 2
1 | 2


Aber bei dir geht das so :

1
2
1
2
1
2
1
2
10/16/2011 16:23 omer36#6
Das zeichen "|" kann man (soweit ich weiß) nicht in einer Listbox benutzen, aber meinst du im Grunde so?

PHP Code:
For $i=0 To 4
    GUICtrlSetData
($List1$ar2D[$i][0] & '    ---    ' $ar2D[$i][1])
Next 
10/16/2011 17:11 Logtetsch#7
Ich wollte das ungefähr sowie er in seinem Bot ....
[Only registered and activated users can see links. Click Here To Register...]
10/16/2011 17:39 omer36#8
Quote:
Originally Posted by Logtetsch View Post
Ich wollte das ungefähr sowie er in seinem Bot ....
[Only registered and activated users can see links. Click Here To Register...]
Was er benutzt, sieht für mich eher aus wie eine GUICtrlCreateListView()


PHP Code:
Local $ar2D[5][2]
$ar2D[0][0] = 'Zeile1/Spalte1'
$ar2D[0][1] = 'Zeile1/Spalte2'
$ar2D[1][0] = 'Zeile2/Spalte1'
$ar2D[1][1] = 'Zeile2/Spalte2'
$ar2D[2][0] = 'Zeile3/Spalte1'
$ar2D[2][1] = 'Zeile3/Spalte2'
$ar2D[3][0] = 'Zeile4/Spalte1'
$ar2D[3][1] = 'Zeile4/Spalte2'
$ar2D[4][0] = 'Zeile5/Spalte1'
$ar2D[4][1] = 'Zeile5/Spalte2'

$form GUICreate(""455330192124)
$List1 GUICtrlCreateListView("blaa|blubb"3216377279)
GUISetState(@SW_SHOW)

For 
$i=0 To 4
    GUICtrlCreateListViewItem
($ar2D[$i][0] & '|' $ar2D[$i][1], $List1)
Next


While 1
    
If GUIGetMsg() == -3 Then Exit
WEnd 
Meinst du so?
10/16/2011 18:27 Logtetsch#9
Edit : Ja, sowas meinte ich. Ich habe jezz ne Frage. Könntest du dir das mal angucken und sagen wie ich sowas machen kann, dass wenn ich auf Button1 drücke, sich ein neues Element erstellt mit dem @HOUR , @MIN, @SEC ? Und wenn man auf Button2 drückt, soll das ausgewählte Element gelöscht werden ....


PHP Code:

Local $ArrayList
[5]
Global 
$Hour = @HOUR
Global $Sec = @SEC
Global $Min = @MIN


#include <array.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Form1"234249192124)
$ListView1 GUICtrlCreateListView("Stunde | Minute | Sekunde"88218166)
$Button1 GUICtrlCreateButton("Hinzufügen"81847525)
$Button2 GUICtrlCreateButton("Delete"1521847525)
$Button3 GUICtrlCreateButton("Exit"802167525)
$ArrayList[0] = GUICtrlCreateListViewItem($Time "|" $Min "|" $Sec$ListView1)
$ArrayList[1] = GUICtrlCreateListViewItem($Time "|" $Min "|" $Sec$ListView1)
$ArrayList[2] = GUICtrlCreateListViewItem($Time "|" $Min "|" $Sec$ListView1)
$ArrayList[3] = GUICtrlCreateListViewItem($Time "|" $Min "|" $Sec$ListView1)
$ArrayList[4] = GUICtrlCreateListViewItem($Time "|" $Min "|" $Sec$ListView1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit



        Case 
$Button1

        
Case $Button2

        
Case $Button3
            
Exit


    EndSwitch
WEnd 
10/16/2011 19:13 omer36#10
einfügen:
unter Case $Button1,
GUICtrlCreateListViewItem(@HOUR & "|" & @MIN & "|" & @SEC, $ListView1) hinschreiben....

löschen:
_GUICtrlListView_DeleteItemsSelected($ListView1)
10/16/2011 19:21 Logtetsch#11
Quote:
Originally Posted by omer36 View Post
einfügen:
unter Case $Button1,
GUICtrlCreateListViewItem(@HOUR & "|" & @MIN & "|" & @SEC, $ListView1) hinschreiben....

löschen:
_GUICtrlListView_DeleteItemsSelected($ListView1)
Man braucht aber für _GUICtrlListView_DeleteItemsSelected ne bestimmte #include Datei.
Hab ich, aber dann entsteht sone Fehler MEldung

Bild :

[Only registered and activated users can see links. Click Here To Register...]
10/16/2011 20:40 omer36#12
guiheader.au3?


#Include <GuiListView.au3>

mal ehrlich, wenn du nichtmal ein include suchen kannst (einfach "_GUICtrlListView_DeleteItemsSelected" markieren und F1 drücken, schon stehts oben dick und fett
Quote:
#Include <GuiListView.au3>
_GUICtrlListView_DeleteItemsSelected($hWnd)
) solltest du dir echtmal gedanken machen...
10/16/2011 22:46 Logtetsch#13
Ok. Soweit so Gut. Nun würd ich nochwas wissen.

PHP Code:
Local $Array[2]

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Form1"268296192124)
$ListView1 GUICtrlCreateListView("Stunde | Minute | Sekunde"88250150)
$Button1 GUICtrlCreateButton("Hinzufügen"81767525)
$Button2 GUICtrlCreateButton("Start"1841767525)
$Button3 GUICtrlCreateButton("Entfernen"961767525)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit

        Case 
$Button1
            $Array
[1] = GUICtrlCreateListViewItem (@Hour " | " & @MIN " | " & @SEC ,$ListView1)

        Case 
$Button3
            $Delete 
_GUICtrlListView_DeleteItemsSelected ($ListView1)

        Case 
$Button2
            $Test 
_GUICtrlListView_GetItemTextArray($ListView1,$Array[1])
            
MsgBox (0,"",$Test)

    EndSwitch
WEnd 
Angenommen da sind schon 4 Elemente vorhanden. Wie kann ich diese peer MsgBox aufrufen ?

Beispiel :

11 | 55 | 55
11 | 55 | 56
11 | 55 | 57
11 | 55 | 58

----------------

Wie kann ich dann eine Msgbox aufrufen, die mir die werte einzeln anzeigt ?

msg Logtetsch
10/18/2011 15:23 Logtetsch#14
Quote:
Originally Posted by klavier22 View Post
Edit seh grad die Hilfe - hast dich also doch nicht damit beschäftigt.
siehe Hilfe zu "_GUICtrlListView_GetItemTextArray"
for schleifen müsstest du können - so schwer ist das dann auch nicht.
Hab ein neues Script angefärtigt.


Wie kann ich jezz den Button3 so programmieren, dass er mich nacheinander zu den gespeicherten Koordinaten Portet ???
10/18/2011 21:59 klavier22#15
ich würde bei GetTextArray bleiben.
Das ganze wieder in eine for schleife, dann haste ja in $Array[1] die 1. und in $Array[2] die 2. Koordinate stehen. Dann das ganze an deine teleport funktion übergeben - fertig

also ungefähr so:
PHP Code:
            $count _GUICtrlListView_GetItemCount($ListView1)
            for 
$x 0 to $count 1
                $Text 
_GUICtrlListView_GetItemTextArray($ListView1$x)
                
MsgBox(4096""$Text[1] & " | " $Text[2])
                
TeleportX($Text[1])
                
TeleportY($Text[2])
            
Next