Autoit - GUICtrlSetData / Liste Hilfe benötigt

12/31/2012 22:10 Licane#1
Hallo Epvp Codeler,
Ich möchte in Autoit eine Liste haben, wo ich einen Eintrag auswählen kann, wo dann die Labels "Geupdated" werden.
Dies ist für ein Spiel gedacht, wo ich items verkaufe/Handle.

Hier mal mein vorgang:#include <ButtonConstants.au3>
PHP Code:
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Atlantica Prices"617462192124)
$List1 GUICtrlCreateList(""00121110)
$Button1 GUICtrlCreateButton("Button1"241208949)
$Label1 GUICtrlCreateLabel("Label1"240243617)
$Label2 GUICtrlCreateLabel("Label2"240483617)
$Label3 GUICtrlCreateLabel("Label3"240723617)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

        Case 
$Button1
            GUICtrlSetData 
($List1,"Schlachtruf")




    EndSwitch
WEnd 
So ungefähr meine ich, ich wähle den Eintrag der liste aus, klicke auf den Button und den Labels wird ein gewisser Wert gegeben.
Alles ist kein problem, bis auf die Liste, damit komm ich nicht klar.
Wie mache ich die einträge der liste?
mit GUICtrlSetData ist das bisschen schwer.
Und wenn ich die Labels updaten will:
PHP Code:
Case $Button1
       
if $List "Peter Ring" then
$Label1 
"1000Gold"
$Label2 "1000000Gold"
endif 
Wäre machbar oder gibt es eine Einfachere/Bessere lösung,
bin nicht so der Profi.

danke
12/31/2012 23:29 Requi#2
Ich weiß nicht ob du es so meinst:
Code:
Case $Button1
If GuiCtrlRead($List1) = "Peter Ring" Then
GuiCtrlSetData($Label1, "1000Gold")
GuiCtrlSetData($Label2, "1000000Gold")
EndIf
01/01/2013 09:38 Licane#3
Quote:
Originally Posted by 'RD. View Post
Ich weiß nicht ob du es so meinst:
Code:
Case $Button1
If GuiCtrlRead($List1) = "Peter Ring" Then
GuiCtrlSetData($Label1, "1000Gold")
GuiCtrlSetData($Label2, "1000000Gold")
EndIf
Jo genau das meinte ich. War gestern abend neben der Spur. :D

Jedoch hab ich für mich eine bessere Lösung gefunden, jedoch noch eine kleine Frage. Der Code sieht wie folgt aus:

Geht das mit dem Read nicht einfacher? .. Bin nicht so der Profii ;)

Die ganzen Endif's nerven stark und gibt es eine bessere möglichkeit wie das :
$items = "Heilung|Flammenspeer|ToxSchwert|ZerstörenderInsti nkt|Motorsägenüberfall" ?

Danke
01/01/2013 12:43 omer36#4
so siehts vllt n bischen besser aus :D


PHP Code:
$items "Heilung|Flammenspeer|ToxSchwert|ZerstörenderInstinkt|Motorsägenüberfall"
$read 0

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=
$Form1 GUICreate("Atlantica Prices"387242192124)
$Button1 GUICtrlCreateButton("Preise"241208949)
$Label1 GUICtrlCreateLabel("Label1"2402412617)
$Label2 GUICtrlCreateLabel("Label2"2404812617)
$Label3 GUICtrlCreateLabel("Label3"2407212617)
$Combo1 GUICtrlCreateCombo("Schlachtruf"242414525BitOR($CBS_DROPDOWN$CBS_AUTOHSCROLL))
GUICtrlSetData($Combo1$items)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button1
            $read 
GUICtrlRead($Combo1)
            If 
$read "Schlachtruf" Then
                GUICtrlSetData
($Label1" I ist Wert: 1.200.000")
                
GUICtrlSetData($Label2" II ist Wert: 4.000.000")
                
GUICtrlSetData($Label3" III ist Wert: 12.000.000")
            ElseIf 
$read "Heilung" Then
                GUICtrlSetData
($Label1" I ist Wert: 250.000")
                
GUICtrlSetData($Label2" II ist Wert: 800.000")
                
GUICtrlSetData($Label3" III ist Wert: 2.200.000")
            ElseIf 
$read "ToxSchwert" Then
                GUICtrlSetData
($Label1" I ist Wert: 350.000")
                
GUICtrlSetData($Label2" II ist Wert: 800.000")
                
GUICtrlSetData($Label3" III ist Wert: 4.200.000")
            ElseIf 
$read "Flammenspeer" Then
                GUICtrlSetData
($Label1" I ist Wert: 5.000")
                
GUICtrlSetData($Label2" II ist Wert: 700.000")
                
GUICtrlSetData($Label3" III ist Wert: 1.800.000")

            ElseIf 
$read "ZerstörenderInstinkt" Then
                GUICtrlSetData
($Label1" I ist Wert: 30.000")
                
GUICtrlSetData($Label2" II ist Wert: 2.200.000")
                
GUICtrlSetData($Label3" III ist Wert: 12.000.000")

            ElseIf 
$read "ZerstörenderInstinkt" Then
                GUICtrlSetData
($Label1" I ist Wert: 30.000")
                
GUICtrlSetData($Label2" II ist Wert: 2.200.000")
                
GUICtrlSetData($Label3" III ist Wert: 12.000.000")

            ElseIf 
$read "Motorsägenüberfall" Then
                GUICtrlSetData
($Label1" I ist Wert: 300.000")
                
GUICtrlSetData($Label2" II ist Wert: 400.000")
                
GUICtrlSetData($Label3" III ist Wert: 4.000.000")
            EndIf

    EndSwitch
WEnd 
und wegen den
$items = "Heilung|Flammenspeer|ToxSchwert|ZerstörenderI nsti nkt|Motorsägenüberfall"
das muss so sein, mehr oder weniger..
irgendwie musst du ja deine items auflisten.

könntest aber auch die daten in einer textdatei auflisten und die dann auslesen lassen.
01/01/2013 13:02 Licane#5
Und wie geht dies?
01/01/2013 13:08 omer36#6
du schreibt nen kleines script, welches z. B. so aussieht:

PHP Code:
IniWrite("Daten.ini""Schlachtruf""I""1.200.000")
IniWrite("Daten.ini""Schlachtruf""II""4.000.000")
IniWrite("Daten.ini""Schlachtruf""III""12.000.000")

IniWrite("Daten.ini""Heilung""I""250.000")
IniWrite("Daten.ini""Heilung""II""800.000")
IniWrite("Daten.ini""Heilung""III""1.200.000")

IniWrite("Daten.ini""ToxSchwert""I""350.000")
IniWrite("Daten.ini""ToxSchwert""II""800.000")
IniWrite("Daten.ini""ToxSchwert""III""4.200.000"
dann hast du eine .ini datei mit dem inhalt:
Code:
[Schlachtruf]
I=1.200.000
II=4.000.000
III=12.000.000
[Heilung]
I=250.000
II=800.000
III=1.200.000
[ToxSchwert]
I=350.000
II=800.000
III=4.200.000
(natürlich mit allen daten, die du brauchst..)

dann gibt es verschiedene wege...du könntest z. B. mit dem befehl IniReadSectionNames() die namen auslesen, und die zum string $items hinzufügen...

und mit dem IniReadSection() befehl die inhalte auslesen...


PHP Code:
Local $var IniReadSectionNames("Daten.ini")
Local $items ""

For $i 1 To $var[0]
    
$items &= $var[$i] & "|"
Next

$read 
0

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=
$Form1 GUICreate("Atlantica Prices"387242192124)
$Button1 GUICtrlCreateButton("Preise"241208949)
$Label1 GUICtrlCreateLabel("Label1"2402412617)
$Label2 GUICtrlCreateLabel("Label2"2404812617)
$Label3 GUICtrlCreateLabel("Label3"2407212617)
$Combo1 GUICtrlCreateCombo(""242414525BitOR($CBS_DROPDOWN$CBS_AUTOHSCROLL))
GUICtrlSetData($Combo1$items)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button1
            $read 
GUICtrlRead($Combo1)
            
Local $var IniReadSection("Daten.ini"$read)
            
            
GUICtrlSetData($Label1$var[1][0] & " ist Wert: " $var[1][1])
            
GUICtrlSetData($Label2$var[2][0] & " ist Wert: " $var[2][1])
            
GUICtrlSetData($Label3$var[3][0] & " ist Wert: " $var[3][1])

    EndSwitch
WEnd 
(wenn du in deinem editor einen befehl markieren tust und dann f1 klickst, kommst du direkt in die hilfe. da stehen die befehle dann erklärt, mit einem beispiel unten)