1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Rigobert

Beiträge von Rigobert

  • Frage zur Gui bzw GUICtrlSetState

    • Rigobert
    • 9. März 2017 um 08:40

    Ja, du hast recht.
    Man sollte eine Funktion nicht einfach Kopieren und die States ändern und nicht alles dabei berücksichtigen.
    Erstens muss das Global weg, zweitens füllt er mir bei der ersten Funktion zwar das Array, aber ich fülle es immer nur mit den letzten werten.
    Gibt es ausser mit Eval noch eine Möglichkeit Variablen zusammen zu führen?


    AutoIt
    Func fuellungenarray($auswahl)
    	$wahl = IniReadSection("produktini\"&$auswahl&".ini", $auswahl)
    	$group = IniRead("produktini\"&$auswahl&".ini", 'GroupName', $auswahl, '')
    	$groupsettings = IniReadSection("produktini\"&$auswahl&".ini", 'GroupSetting')
    	$controlstart = IniReadSection("produktini\"&$auswahl&".ini", 'ControlStart')
     	$Anzahl = UBound($wahl)
    	$groupauswahl = GUICtrlCreateGroup($group, $groupsettings[1][1], $groupsettings[2][1],     $groupsettings[3][1], $groupsettings[4][1])
    	GUICtrlSetState($groupauswahl, 160)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    Global $arFuellung[$Anzahl]
    For $i = 0 To UBound($arFuellung) -1
    	If $i = 0 Then
    		$wahl[0][1] = 'Nichts gewählt'
    	EndIf
    	$arFuellung[$i] = GUICtrlCreateRadio($wahl[$i][1], $controlstart[1][1], $controlstart[2][1] + 20*$i, $controlstart[3][1], $controlstart[4][1])
    	GUICtrlSetState($arFuellung[$i], 160)
     Next
    For $i = 0 To UBound($arFuellung) -2 Step 2
        GUICtrlSetState($arFuellung[0], $GUI_CHECKED)
    	GUICtrlSetState($arFuellung[0], 160)
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    EndFunc
    Alles anzeigen

    Hier beim setzen des Arrays $arFuellung ist der Hund im Pfeffer begraben :(
    Dieses Array wird bei mir immo durch eine Dynamische Anzahl neu befüllt, und natürlich ist immer nur das Letzte befüllen vorhanden.

    Ich sagte ja ich denke ich muss da nochmal komplett drüber :(
    Danke dir

  • Frage zur Gui bzw GUICtrlSetState

    • Rigobert
    • 8. März 2017 um 21:41

    Ja genau, also wie im Handbuch beschrieben:
    State values can be summed up as for example $GUI_DISABLE (128) + $GUI_HIDE (32) sets the control in an disabled and hidden state

    So müsste ja 80 das folgende tun:
    $GUI_ENABLE (64)
    Control will be enabled.
    $GUI_SHOW (16)
    Control will be visible. On Tabitem control will select the first tab to be
    displayed.

    Oder habe ich das Falsch verstanden?
    Ich meine bei 160 tut er ja auch was er tun soll.

    Danke im Voraus

  • Frage zur Gui bzw GUICtrlSetState

    • Rigobert
    • 8. März 2017 um 21:18

    Hi, ich habe folgendes Dilemma.

    Bei meiner Funktion werden erstmal alle GUIGroups erstellt und Disabled sowie Versteckt.

    Code
    Func fuellungenarray($auswahl)
    	$wahl = IniReadSection("produktini\"&$auswahl&".ini", $auswahl)
    	$group = IniRead("produktini\"&$auswahl&".ini", 'GroupName', $auswahl, '')
    	$groupsettings = IniReadSection("produktini\"&$auswahl&".ini", 'GroupSetting')
    	$controlstart = IniReadSection("produktini\"&$auswahl&".ini", 'ControlStart')
     	$Anzahl = UBound($wahl)
    	$groupauswahl = GUICtrlCreateGroup($group, $groupsettings[1][1], $groupsettings[2][1],     $groupsettings[3][1], $groupsettings[4][1])
    	GUICtrlSetState($groupauswahl, 160)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    Global $arFuellung[$Anzahl]
    For $i = 0 To UBound($arFuellung) -1
    	If $i = 0 Then
    		$wahl[0][1] = 'Nichts gewählt'
    	EndIf
    	$arFuellung[$i] = GUICtrlCreateRadio($wahl[$i][1], $controlstart[1][1], $controlstart[2][1] + 20*$i, $controlstart[3][1], $controlstart[4][1])
    	GUICtrlSetState($arFuellung[$i], 160)
     Next
    For $i = 0 To UBound($arFuellung) -2 Step 2
        GUICtrlSetState($arFuellung[0], $GUI_CHECKED)
    	GUICtrlSetState($arFuellung[0], 160)
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    EndFunc
    Alles anzeigen


    So mit dieser Funktion und den Aufrufen aus einem Array heraus werden alle erstellt, Disabled und Versteckt.

    Nun wollte ich die durch Klick auf die zugehörigen Radiobuttons wieder Enablen und Anzeigen.

    AutoIt
    Func fuellungenarray_einblenden($auswahl)
    	$wahl = IniReadSection("produktini\"&$auswahl&".ini", $auswahl)
    	$group = IniRead("produktini\"&$auswahl&".ini", 'GroupName', $auswahl, '')
     	$Anzahl = UBound($wahl)
    	$groupauswahl = GUICtrlRead($group,$GUI_READ_EXTENDED)
    
    
    	GUICtrlSetState($groupauswahl, 80)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    Global $arFuellung[$Anzahl]
    For $i = 0 To UBound($arFuellung) -1
    	If $i = 0 Then
    		$wahl[0][1] = 'Nichts gewählt'
    	EndIf
    	GUICtrlSetState($arFuellung[$i], 80)
     Next
    For $i = 0 To UBound($arFuellung) -2 Step 2
    	GUICtrlSetState($arFuellung[0], 80)
        GUICtrlSetState($arFuellung[0], $GUI_CHECKED)
    Next
    EndFunc
    Alles anzeigen


    Allerdings Funktioniert das nicht, irgendwie habe ich heute echte Knoten.
    Wäre Super wenn mir da auch noch jemand einen Anstoss in die richtige richtung geben könnte.

    Vieln Dank im Voraus

  • Habe ein Switch Case Problem

    • Rigobert
    • 8. März 2017 um 13:41

    lol, ok, das hatte ich nicht erwartet, dass ich so dran vorbeiziehe an der Lösung^^

    Vielen Dank dir

  • Habe ein Switch Case Problem

    • Rigobert
    • 8. März 2017 um 12:45

    Hallo,
    also folgendes zu meinem Problem.
    Ich habe eine GUI auf der ich Dynamisch Gruppen mit Radiobuttons befülle.
    Die werte für die Radiobuttons beziehe ich aus Inidateien.
    Das Klappt alles super, bis auf eines nämlcih das wenn ich einen Wert anklicke er dies auch ausführt, wenn ich das Fest eintrage dann funktioniert es, nur eine Schleife kann ich im Switch Case irgendwie nicht aufbauen :(

    Hier mal der Code

    AutoIt
    Func kissenarray($auswahl)
    Global $str
    	$wahl = IniReadSection("produktini\"&$auswahl&".ini", $auswahl)
    	$group = IniRead("produktini\"&$auswahl&".ini", 'GroupName', $auswahl, '')
    	$groupsettings = IniReadSection("produktini\"&$auswahl&".ini", 'GroupSetting')
    	$controlstart = IniReadSection("produktini\"&$auswahl&".ini", 'ControlStart')
     	$Anzahl = UBound($wahl)
    	$groupauswahl = GUICtrlCreateGroup($group, $groupsettings[1][1], $groupsettings[2][1], $groupsettings[3][1], $groupsettings[4][1])
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    Global $arKissen[$Anzahl]
    For $i = 0 To UBound($arKissen) -1
    	If $i = 0 Then
    		$wahl[0][1] = 'Nichts gewählt'
    	EndIf
    	$arKissen[$i] = GUICtrlCreateRadio($wahl[$i][1], $controlstart[1][1], $controlstart[2][1] + 20*$i, $controlstart[3][1], $controlstart[4][1])
     Next
    For $i = 0 To UBound($arKissen) -2 Step 2
        GUICtrlSetState($arKissen[0], $GUI_CHECKED)
    Next
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    EndFunc
    Alles anzeigen

    Nun der Switch Case bereich

    AutoIt
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $arKissen[1]
    			MsgBox(0, "Kissen", $arKissen[1],0)
    		Case $arKissen[2]
    			MsgBox(0, "Kissen", $arKissen[2],0)
    		Case $MainMenu
    		Case $EinstellungenMenu
    		Case $BeendenMenu
    			Exit
           EndSwitch
    WEnd
    Alles anzeigen


    Mein Problem ist, dass ich hier mit den Arraybereichen $arKissen[1] arbeiten kann, ich aber gerne hätte das ich das ungefähr so aufbauen könnte, was allerdings nicht Funktioniert

    AutoIt
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
           For $i = 0 To UBound($arKissen) -1
    		Case $arKissen[$i]
    		   tu etwas
    	Next
    		Case $MainMenu
    		Case $EinstellungenMenu
    		Case $BeendenMenu
    			Exit
           EndSwitch
    WEnd
    Alles anzeigen

    Hat mir da jemand einen Tipp wie ich da vorgehen müsste ?

    Bitte keine Komplette Lösung, sondern nur Hinweise wo ich da meinen Knoten im Gehirn habe :)

    Vielen Dank im Voraus

  • Frage zu GUICtrlCreateTab

    • Rigobert
    • 25. Februar 2017 um 14:23

    Danke dir, das GUICtrlRead hat mir gefehlt :)
    So jetzt einfach in dem Case Abgefragt welcher Index das kommt und entsprechend das Listing befüllt, danke dir klappt super :=)
    Das leben kann so einfach sein wenn die Scheuklappen fallen^^

    MfG

  • Frage zu GUICtrlCreateTab

    • Rigobert
    • 25. Februar 2017 um 13:42

    Hallo, also meine Frage:
    Wie Löse ich eine Funktion aus wenn ich den Tab Wechsel?
    Meine Tabs in der Auflistung.
    Ich gebe nur diese Infos, da ich ja lernen will, ich möchte gerne nur einen Schubs in die richtige Richtung. :)
    Das sind die Infos aus der GUI

    Code
    $TabInstancen = GUICtrlCreateTab(16, 16, 673, 665)
    
    
    $TabInstance = GUICtrlCreateTabItem("TabInstance")
    $TabJacke = GUICtrlCreateTabItem("Jacke")
    $TabHose = GUICtrlCreateTabItem("Hose")
    $TabSocken = GUICtrlCreateTabItem("Socken")
    $TabSchuhe = GUICtrlCreateTabItem("Schuhe")


    Nun die Infos aus der Funktionsdatei:

    Code
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $TabInstancen
    			MsgBox(0,"Tabnachricht", $TabInstancen,0)
    	EndSwitch
    WEnd

    Klicke ich mit der Case Anweisung irgend ein Tab, gibt er mir in der MsgBox die Antwort 3 heraus.
    Mache ich ein Case mit Beispielsweise : $TabJacke
    Dann gibt er mir nichts aus.
    Ich denke ich muss da irgendwie den Index ansteuern, der ja bei 0 beginnt, ich weis aber nicht wie ich den ansteuern kann :(

    Ein Tipp für mich?
    Dann her damit, wäre sehr Dankbar dafür.

    MfG

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™