Parameter bei hotkeyset oder GUIctrlsetonevent() mitgeben???

  • Gibt es eine möglichkeit Bei dem befehl Guictrlsetonevent() der aufzurufenden funktion parameter mitzugeben???
    mfg
    @night@

  • Nein, grundsätzlich nicht. Aber du kannst es über Global-Variablen machen...

    Was willst du denn erreichen?

  • Ja... Globals :D
    Ne ich kenne keine Möglichkeit... Poste doch einfach mal dein Script, vllt gibts n Workaround ;)

    edit: autsch wieder mal 99% das gleiche wie mathias, nur das ich die maustauste 1ms langsamer drücke...

  • Es geht darum dass ich ein fenster "aufrufen" will womit man die steuern einstellen kann...
    Als parameter würde ich der funktion gerne mitgeben aus welcher stadt sie aufgerufen wird^^ damit würde ich dann nur eine funktion brauchen
    (man soll in jeder stadt die steuern anders einstellen können)

    Spoiler anzeigen
    [autoit]

    ;ACHTUNG: !!!!! In diesem skript sind bilder die alle außer ich wahrscheinlich NICHT auf ihrem pc haben^^
    ;###########################################################################################################
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
    Global $p1name,$p2name, $p3name
    $p1 = "Player1"
    $p2 = "Player2"
    $p3 = "Player3"
    ;-------------------------------------------------------------------- deklaration der standardvariablen
    Global $einwohneranz[21], $minenstufe[21], $kirchenstufe[21], $militstufe[21], $tavernenstufe[21], $anzk[21], $anzrit[21], $anzkreuzrit[21]
    Global $beliebtheit[21], $steuerstufe[21]
    ;-------------------------------------------------------------------------------
    ;Intalisierung der stanardvariablen
    #Region
    For $i = 0 To 20
    $einwohneranz[$i] = 1000
    $minenstufe[$i] = 1
    $kirchenstufe[$i] = 1
    $militstufe[$i] = 1
    $tavernenstufe[$i] = 1
    $anzk[$i] = 0
    $anzrit[$i] = 0
    $anzkreuzrit[$i] = 0
    $beliebtheit[$i] = 90
    $steuerstufe[$i] = 1
    Next

    [/autoit] [autoit][/autoit] [autoit]

    #EndRegion
    spieler11()
    Func vorschau()
    ;----------------------------- Vorschau anfang FUNKT NOCH NICHT^^
    ;$vorschau = GUICreate("Game", @desktopwidth, @desktopheight, 0, 0, $WS_POPUP, $WS_EX_TRANSPARENT)
    ;GUISetState()
    ;WinSetTrans ($vorschau, "", 0) ;So mach ich das Fentser transparent
    ;Sleep(2000)
    ;$vorschaupic = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Clemens\Desktop\Autoit\Game\nightentertainment.jpg", 300, 200, 550, 500)
    ;Sleep(2000)
    ;spieler11()
    ;------------------------Vorschau ende
    EndFunc
    Func spieler11()
    GUIcreate($p1name & "s Zug", 800, 500)
    GUISetState()
    Guictrlcreatetab(0,0, 675, 500)
    Guictrlcreatetabitem("Stadt1")
    $info = GUICtrlCreateLabel("Stadtinformationen: " & @crlf & "Einwohneranzahl:" & $einwohneranz[0] & @crlf & "Beliebtheit: " & $beliebtheit[0] & @crlf & "Kämpfer: " & $anzk[0] & @crlf & "Ritter: " & $anzrit[0] & @crlf & "Kreuzritter: " & $anzkreuzrit[0] & @crlf & "Steuereinnahmen: " & $steuerstufe[0] * $einwohneranz[0], 20, 200)
    $naechstersp = GUIctrlcreatebutton("Nächster Spieler!", 50, 300)
    GUIctrlsetonevent($naechstersp, "spieler2")
    Guictrlcreatetabitem("Stadt2")
    $info = GUICtrlCreateLabel("Stadtinformationen: " & @crlf & "Einwohneranzahl:" & $einwohneranz[1] & @crlf & "Beliebtheit: " & $beliebtheit[1] & @crlf & "Kämpfer: " & $anzk[1] & @crlf & "Ritter: " & $anzrit[1] & @crlf & "Kreuzritter: " & $anzkreuzrit[1] & @crlf & "Steuereinnahmen: " & $steuerstufe[1] * $einwohneranz[1], 20, 200)
    GUICtrlCreateTabItem("Stadt3")
    $info = GUICtrlCreateLabel("Stadtinformationen: " & @crlf & "Einwohneranzahl:" & $einwohneranz[2] & @crlf & "Beliebtheit: " & $beliebtheit[2] & @crlf & "Kämpfer: " & $anzk[2] & @crlf & "Ritter: " & $anzrit[2] & @crlf & "Kreuzritter: " & $anzkreuzrit[2] & @crlf & "Steuereinnahmen: " & $steuerstufe[2] * $einwohneranz[2], 20, 200)
    GUIctrlcreatepic("C:\Dokumente und Einstellungen\Clemens\Desktop\Autoit\Ressources\Bilder\geldhaufen.jpg", 20, 300, 70, 70)
    $steuerbutton = GUIctrlcreatebutton("Steuern einstellen", 15, 380)
    GUIctrlsetonevent($steuerbutton, "Steuer_einstellung")
    While 1
    Sleep(1000)
    Wend
    endfunc
    Func spieler2()
    ;das kommt später
    endfunc
    Func close()
    Exit
    endfunc
    Func Steuer_einstellung()
    GUIcreate("Steuereinstellung")
    GUIsetstate(@sw_show)
    GUIctrlcreatepic("C:\Dokumente und Einstellungen\Clemens\Desktop\Autoit\Ressources\Bilder\geldhaufen.jpg", 105,30, 200, 200)
    While 1
    Sleep(1000)
    Wend
    endfunc

    [/autoit]


    €dit: Wie kann ich einen slider zur werteintellung benutzen???
    mfg
    @night@

  • gibt es auch eine möglichkeit button so zu deklarieren dass sie nur unter bestimmten Bedingungen anklickbar sind^^ (Wie zum beispiel "Übernehmen" bei vielen einstellungen)
    mfg
    @night@

  • Ja gibt es

    [autoit]


    GUICtrlSetState (lID, $GUI_DISABLE)
    bzw
    GUICtrlSetState (ID, $GUI_ENABLEE)

    [/autoit]
  • hallo @night,

    in aus obigem Skript erkennen kann hast du meinen Lösungsvorschlag zu deinem Post

    mehrere Fenster mit gui^^ nicht richtig verstanden hast. Schau dir das nochmal genau an. Nachdem ich dort gesehen hatte, dass du Arrays vewendest hab ich dies auch auf die Spieler angewandt und nur die Daten der Steuerelemente (Orginal 1 Label für Stadtinfo, von mir eingefügt Label für Anzeige des aktuellen Spielers und einen Button zum Spieler wechseln) nach dem Clicken des Buttons ausgetauscht. Dies geschieht anhand der Globalen Variable $iSpieler wobei ich mich gewundert habe, dass du 3 Spieler aber 21 Städte hast.
    Durch die Arrays ist es nähmlich nicht nötig mehre Fenster aufzubauen, es reicht wenn man die Daten über GUICtrlSetData austauscht.
    Und wenn du das Label info aufteilst für jede Info eines mit Eingabefeld (oder anderem) dahinter, kannst über das gleiche Fenster auch Eingaben vonehmen, und wenn du die bei bestimmten Bedingungen sperren willst so ist auch das möglich aber das hat dir Prizma ja schon gepostet.

    Es kann aber auch sein ich habe dein Konzept nicht erkannt habe, dazu hab ich im Forum schon öfters gelesen

    Zitat

    Meine Glaskugel ist defekt (oder so ähnlich).



    Deshalb erklär mal etwas genauer wie du dir dein Spiel vorstellst also Aufbau der GUI etc., damit ich weis in welche Richtung (Programmtechnisch) das ganze gehen soll und in wie weit ich dir dazu Tipps geben kann.


    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (9. April 2009 um 22:41)