Problemchen bei meinem kleinen Auswerte-Tool

  • Hallihallo,

    Also nachdem mit Raupi bisher so wunderbar in der Shoutbox geholfen hat, hier jetzt mal ein (wenig) lauffähiger Code und gleich dazu eine Frage. (Ja ich weiss, die ganzen Funktionen fehlen, aber die sind für das Problem gerade nicht wichtig) Nach und nach werde ich hier wohl meine offenen Fragen posten und zum Schluss poste ich gerne das fertige Programm :)

    Wie bekomm ich das unschöne Flackern der aus- bzw. eingeblendeten Label- & Input-Boxen weg?

    Der Fehler dürfte wohl irgendwo bei Zeile 77-82 oder 118-128 liegen ... aber ich finds einfach nicht.

    Spoiler anzeigen
    [autoit]


    ; ###################################################################################################
    ; # Tool-Name:WADEM (xxxxx)#
    ; # Version:0.6#
    ; # Autor:na ich ^^#
    ; # Datum:06.01.2011#
    ; # Info:mit grafischer Benutzeroberfläche - ca. 1125 code-Zeilen oder noch mehr #
    ; ###################################################################################################

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

    ; 'include' von AutoIt-Funktionen
    #include <GUIConstants.au3>; für GUI
    #include <EditConstants.au3>; für weiterreichendes GUI-Handling
    #include <WindowsConstants.au3>
    #Include <File.au3>; für FileListToArray
    #Include <Array.au3>; für "_ArrayDisplay" in func "read_Textfiles()"
    ;#include <Excel.au3>
    #Include <GuiComboBox.au3>

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

    ; 'include' von Programm-Funktionen
    ;#include <funktionen_main.au3>; Funktionen des Programms
    ;#include <funktionen_einlesen.au3>; Funktionen des Programms
    ;#include <funktionen_diags.au3>; Funktionen des Programms

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

    ;#include <dummy_run.au3>; TESTWEISE z.B. für Startbutton-Tests

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

    ; Daten für Main-Funktion (GUI) einlesen
    ;pre_GUI_Vars()

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

    ; GUI erzeugen
    #Region ### START Koda GUI section ### Form=c:\temp\projekt_wafer\wadem v0.6\main_maske.kxf
    $Main_Form = GUICreate("WADEM " & "$GUI_vers" , 634, 448, 194, 126)
    $Label_Toolname_1 = GUICtrlCreateLabel("WADEM", 248, 16, 107, 36)
    GUICtrlSetFont(-1, 20, 800, 4, "Arial")
    $Label_Toolname_2 = GUICtrlCreateLabel("Waferweise, automatisierte Diagrammerstellung elektrischer Messungen", 136, 56, 341, 17)

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

    $Tab_WADEM = GUICtrlCreateTab(8, 80, 617, 257)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    $Tab1_Main = GUICtrlCreateTabItem("Hauptseite")

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

    GUICtrlSetState(-1,$GUI_SHOW)

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

    $Label_FKT = GUICtrlCreateLabel("FKT", 52, 137, 33, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $FKT_Input = GUICtrlCreateInput("", 92, 137, 217, 21)

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

    ;$LabelWaferzahl = GUICtrlCreateLabel("Waferanzahl", 52, 169, 94, 24)
    ;GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    ;$WaferzahlInput = GUICtrlCreateInput("", 228, 169, 81, 21)

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

    $LabelWaferzahl = GUICtrlCreateLabel("Waferanzahl", 444, 122, 94, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $WaferzahlInput = GUICtrlCreateInput("", 548, 122, 33, 22, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")

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

    $LabelSavePathInfo = GUICtrlCreateLabel("Speicherpfad zu den Tests:", 52, 241, 198, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $TestPathInput = GUICtrlCreateInput("", 52, 273, 200, 21)
    $RezeptOrdner_Selector = GUICtrlCreateButton("Suche", 272, 272, 41, 25, 0)

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

    $LabelRezeptListe = GUICtrlCreateLabel("Chip-Typ", 52, 201, 66, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $RezeptListe = GUICtrlCreateCombo("", 132, 201, 177, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL,$CBS_SORT))
    GUICtrlSetData(-1, "$DropDownFileList" )

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

    $Label_Antest_Select = GUICtrlCreateLabel("Antest-FKT mit auswählen:", 408, 160, 153, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Checkbox_Antest = GUICtrlCreateCheckbox("", 568, 160, 17, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")

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

    $Input_AntestFKT = GUICtrlCreateInput("", 504, 184, 81, 22, $ES_RIGHT)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetState($Input_AntestFKT, $GUI_HIDE)
    $LabelAntestFKT = GUICtrlCreateLabel("Antest-FKT:", 408, 184, 87, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetState($LabelAntestFKT, $GUI_HIDE)

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

    $Tab2_Extras = GUICtrlCreateTabItem("Extras")

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

    $createBTN = GUICtrlCreateButton("erzeugen", 496, 288, 97, 33, 0)

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

    GUICtrlSetState(-1,$GUI_SHOW)

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

    GUICtrlCreateTabItem("")

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

    $StartBTN = GUICtrlCreateButton("Start", 96, 344, 161, 49)
    GUICtrlSetFont(-1, 18, 400, 0, "Arial")

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

    $ExitBTN = GUICtrlCreateButton("Exit", 272, 344, 161, 49)
    GUICtrlSetFont(-1, 18, 400, 0, "Arial")

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

    GUISetState(@SW_SHOW)

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

    #EndRegion ### END Koda GUI section ###

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

    $dummy = GUICtrlRead($Checkbox_Antest)

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

    ; GUI starten
    While 1
    $nMsg = GUIGetMsg()
    ;UpdateWaferAnzahl()

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

    $dummy = GUICtrlRead($Checkbox_Antest)
    If $dummy = 4 Then
    GUICtrlSetState($LabelAntestFKT, $GUI_HIDE)
    GUICtrlSetState($Input_AntestFKT, $GUI_HIDE)
    ElseIf $dummy = 1 Then
    GUICtrlSetState($LabelAntestFKT, $GUI_SHOW)
    GUICtrlSetState($Input_AntestFKT, $GUI_SHOW)
    Else
    MsgBox(64, 'Info:', "Undefinierter Fehler in 'GUICtrlRead($Checkbox_Antest)'. ")
    EndIf

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

    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $ExitBTN
    Exit

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

    Case $RezeptOrdner_Selector
    ;Messungsordner_auswaehlen()

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

    Case $createBTN
    ;pre_run_check(); Prüfen, ob in allen Feldern Werte eingegeben/ausgewählt wurden --> sonst Fehlermeldung
    ;pre_set_vars(); Variabeln vor Start setzen
    ;INIs_einlesen(); ini-Dateien einlesen

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

    ;read_Textfiles()

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

    Case $StartBTN

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

    ;pre_run_check(); Prüfen, ob in allen Feldern Werte eingegeben/ausgewählt wurden --> sonst Fehlermeldung
    ;INIs_einlesen(); ini-Dateien einlesen
    ;pre_set_vars(); Variabeln vor Start setzen
    ;get_desk_res(); Bildschirmauflösung ermitteln und die Position des Textfeldes bestimmen
    ;pre_run_funcs(); Excel zum aktiven Fenster machen
    ;Tabellenblaetter_loeschen(); die ersten 2 Tabellenblätter löschen

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

    ;Wafer_einlesen_loop()
    ;Klassenwerte()
    ;diag_pre_pre_run(); zwischen Klassenwerten & diag_loop_all einfügen
    ;Diag_Loop_all(); alle Diagramme aller Wafer erzeugen !!Achtung!! Fehler bei leeren Tests-Files
    ;run_ready_Meldung()

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

    EndSwitch
    WEnd

    [/autoit]

    Vielen Dank schon mal für eure Hilfe.

    MfG Freddy

    Einmal editiert, zuletzt von fredowsky (10. November 2011 um 21:11)

    • Offizieller Beitrag
    Spoiler anzeigen
    [autoit]

    ; ###################################################################################################
    ; # Tool-Name:WADEM (xxxxx)#
    ; # Version:0.6#
    ; # Autor:na ich ^^#
    ; # Datum:06.01.2011#
    ; # Info:mit grafischer Benutzeroberfläche - ca. 1125 code-Zeilen oder noch mehr #
    ; ###################################################################################################

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

    ; 'include' von AutoIt-Funktionen
    #include <GUIConstants.au3>; für GUI
    #include <EditConstants.au3>; für weiterreichendes GUI-Handling
    #include <WindowsConstants.au3>
    #include <File.au3>; für FileListToArray
    #include <Array.au3>; für "_ArrayDisplay" in func "read_Textfiles()"
    ;#include <Excel.au3>
    #include <GuiComboBox.au3>

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

    ; 'include' von Programm-Funktionen
    ;#include <funktionen_main.au3>; Funktionen des Programms
    ;#include <funktionen_einlesen.au3>; Funktionen des Programms
    ;#include <funktionen_diags.au3>; Funktionen des Programms

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

    ;#include <dummy_run.au3>; TESTWEISE z.B. für Startbutton-Tests

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

    ; Daten für Main-Funktion (GUI) einlesen
    ;pre_GUI_Vars()

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

    ; GUI erzeugen
    #region ### START Koda GUI section ### Form=c:\temp\projekt_wafer\wadem v0.6\main_maske.kxf
    $Main_Form = GUICreate("WADEM " & "$GUI_vers", 634, 448, 194, 126)
    $Label_Toolname_1 = GUICtrlCreateLabel("WADEM", 248, 16, 107, 36)
    GUICtrlSetFont(-1, 20, 800, 4, "Arial")
    $Label_Toolname_2 = GUICtrlCreateLabel("Waferweise, automatisierte Diagrammerstellung elektrischer Messungen", 136, 56, 341, 17)
    $Tab_WADEM = GUICtrlCreateTab(8, 80, 617, 257)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $Tab1_Main = GUICtrlCreateTabItem("Hauptseite")
    GUICtrlSetState(-1, $GUI_SHOW)
    $Label_FKT = GUICtrlCreateLabel("FKT", 52, 137, 33, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $FKT_Input = GUICtrlCreateInput("", 92, 137, 217, 21)
    ;$LabelWaferzahl = GUICtrlCreateLabel("Waferanzahl", 52, 169, 94, 24)
    ;GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    ;$WaferzahlInput = GUICtrlCreateInput("", 228, 169, 81, 21)
    $LabelWaferzahl = GUICtrlCreateLabel("Waferanzahl", 444, 122, 94, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $WaferzahlInput = GUICtrlCreateInput("", 548, 122, 33, 22, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    $LabelSavePathInfo = GUICtrlCreateLabel("Speicherpfad zu den Tests:", 52, 241, 198, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $TestPathInput = GUICtrlCreateInput("", 52, 273, 200, 21)
    $RezeptOrdner_Selector = GUICtrlCreateButton("Suche", 272, 272, 41, 25, 0)
    $LabelRezeptListe = GUICtrlCreateLabel("Chip-Typ", 52, 201, 66, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $RezeptListe = GUICtrlCreateCombo("", 132, 201, 177, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $CBS_SORT))
    GUICtrlSetData(-1, "$DropDownFileList")
    $Label_Antest_Select = GUICtrlCreateLabel("Antest-FKT mit auswählen:", 408, 160, 153, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Checkbox_Antest = GUICtrlCreateCheckbox("", 568, 160, 17, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Input_AntestFKT = GUICtrlCreateInput("", 504, 184, 81, 22, $ES_RIGHT)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetState($Input_AntestFKT, $GUI_HIDE)
    $LabelAntestFKT = GUICtrlCreateLabel("Antest-FKT:", 408, 184, 87, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetState($LabelAntestFKT, $GUI_HIDE)
    $Tab2_Extras = GUICtrlCreateTabItem("Extras")
    $createBTN = GUICtrlCreateButton("erzeugen", 496, 288, 97, 33, 0)
    GUICtrlSetState(-1, $GUI_SHOW)
    GUICtrlCreateTabItem("")
    $StartBTN = GUICtrlCreateButton("Start", 96, 344, 161, 49)
    GUICtrlSetFont(-1, 18, 400, 0, "Arial")
    $ExitBTN = GUICtrlCreateButton("Exit", 272, 344, 161, 49)
    GUICtrlSetFont(-1, 18, 400, 0, "Arial")
    GUISetState(@SW_SHOW)

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

    #endregion ### END Koda GUI section ###

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

    $dummy = GUICtrlRead($Checkbox_Antest)
    $State = False

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

    ; GUI starten
    While 1
    $nMsg = GUIGetMsg()
    ;UpdateWaferAnzahl()
    Switch $nMsg
    Case $Checkbox_Antest
    $dummy = GUICtrlRead($Checkbox_Antest)
    If $dummy = 4 Then
    GUICtrlSetState($LabelAntestFKT, $GUI_HIDE)
    GUICtrlSetState($Input_AntestFKT, $GUI_HIDE)
    ElseIf $dummy = 1 Then
    GUICtrlSetState($LabelAntestFKT, $GUI_SHOW)
    GUICtrlSetState($Input_AntestFKT, $GUI_SHOW)
    Else
    MsgBox(64, 'Info:', "Undefinierter Fehler in 'GUICtrlRead($Checkbox_Antest)'. ")
    EndIf
    Case $GUI_EVENT_CLOSE
    Exit
    Case $ExitBTN
    Exit
    Case $RezeptOrdner_Selector
    ;Messungsordner_auswaehlen()
    Case $createBTN
    ;pre_run_check(); Prüfen, ob in allen Feldern Werte eingegeben/ausgewählt wurden --> sonst Fehlermeldung
    ;pre_set_vars(); Variabeln vor Start setzen
    ;INIs_einlesen(); ini-Dateien einlesen
    ;read_Textfiles()
    Case $StartBTN
    ;pre_run_check(); Prüfen, ob in allen Feldern Werte eingegeben/ausgewählt wurden --> sonst Fehlermeldung
    ;INIs_einlesen(); ini-Dateien einlesen
    ;pre_set_vars(); Variabeln vor Start setzen
    ;get_desk_res(); Bildschirmauflösung ermitteln und die Position des Textfeldes bestimmen
    ;pre_run_funcs(); Excel zum aktiven Fenster machen
    ;Tabellenblaetter_loeschen(); die ersten 2 Tabellenblätter löschen
    ;Wafer_einlesen_loop()
    ;Klassenwerte()
    ;diag_pre_pre_run(); zwischen Klassenwerten & diag_loop_all einfügen
    ;Diag_Loop_all(); alle Diagramme aller Wafer erzeugen !!Achtung!! Fehler bei leeren Tests-Files
    ;run_ready_Meldung()

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

    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag

    Am besten zusätzlich den Status auslesen und dementsprechend ändern:

    Spoiler anzeigen
    [autoit]


    While 1
    $nMsg = GUIGetMsg()
    ;UpdateWaferAnzahl()

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

    If BitAND(GUICtrlRead($Checkbox_Antest), $GUI_UNCHECKED) Then
    If BitAND(GUICtrlGetState($LabelAntestFKT), $GUI_SHOW) Then
    GUICtrlSetState($LabelAntestFKT, $GUI_HIDE)
    GUICtrlSetState($Input_AntestFKT, $GUI_HIDE)
    EndIf
    Else
    If BitAND(GUICtrlGetState($LabelAntestFKT), $GUI_HIDE) Then
    GUICtrlSetState($LabelAntestFKT, $GUI_SHOW)
    GUICtrlSetState($Input_AntestFKT, $GUI_SHOW)
    EndIf
    EndIf

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

    Switch $nMsg

    [/autoit]

    Edit: Stimmt! So, wie bei Raupi geht's natürlich auch. :)

    • Offizieller Beitrag

    Oscar zuviel Aufwand :D Man muß den State der Input und des Labels doch nur beim klicken auf die Checkbox wechseln. :D

  • Also das nächste Problemchen ...
    "@error" ist ja echt hilfreich, aber gibt es auch die Möglichkeit nur die "aktuelle Funktion" zu verlassen, bzw. zum GUI zurückzukehren? Denn wenn ich, wie im Beispiel ein "EXIT" einfüge, dann wird ja auch die GUI beendet.
    (Ja ich weiss, ich soll die Variablen am Anfang deklarieren. Mach ich auch, aber ich mach grad nen Versionssprung von v0.3 auf v0.5 und das hier ist noch alter, unüberarbeiteter Code)

    [autoit]


    GLOBAL $var = IniReadSection( $parm_read_1, "Parameter")
    If @error Then
    MsgBox(16, "", "Error occurred, probably no INI file.")
    EXIT
    EndIf

    [/autoit]

    Das mit dem "if @error ... " hab ich mir aus der Hilfe abgeschaut.

    • Offizieller Beitrag
    [autoit]

    GLOBAL $var = IniReadSection( $parm_read_1, "Parameter")
    If @error Then
    MsgBox(16, "", "Error occurred, probably no INI file.")
    Return
    EndIf

    [/autoit]
  • Das aktuelle Problemchen ist, dass die Input-Felder, die nur bei ausgewählter Checkbox (Selektive Waferauswahl) z usehen sein sollen, angezeigt werden. Setzt man das Häckchen und entfernt es wieder, werden die Felder ausgeblendet (wie es auch sein soll).

    Das Problem liegt wohl irgendwo bei "$select_Wafer" ... damit sollte das einfacher zu finden sein. (Zeile 87-98 bzw. 159 - 170 )

    Spoiler anzeigen
    [autoit]


    ; ###################################################################################################
    ; # Tool-Name : WADEM (Waferweise Automatisierte Diagrammerstellung Elektrischer Messungen) #
    ; # Version : 0.6 #
    ; # Autor : #
    ; # Datum : 10.01.2011 #
    ; # Info : mit grafischer Benutzeroberfläche - ca. 1125 code-Zeilen #
    ; ###################################################################################################

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

    ; 'include' von AutoIt-Funktionen
    #include <GUIConstants.au3> ; für GUI
    #include <EditConstants.au3> ; für weiterreichendes GUI-Handling
    #include <WindowsConstants.au3>
    #include <File.au3> ; für FileListToArray
    #include <Array.au3> ; für "_ArrayDisplay" in func "read_Textfiles()"
    ;#include <Excel.au3>
    #include <GuiComboBox.au3>

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

    ; 'include' von Programm-Funktionen
    #include <funktionen_main.au3> ; Funktionen des Programms
    #include <funktionen_einlesen.au3> ; Funktionen des Programms
    #include <funktionen_diags.au3> ; Funktionen des Programms

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

    ;#include <dummy_run.au3> ; TESTWEISE z.B. für Startbutton-Tests

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

    ;Opt("MustDeclareVars", 1)

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

    ; Daten für Main-Funktion (GUI) einlesen
    pre_GUI_Vars()

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

    ; ################################################################################################
    ; GUI erzeugen
    #Region ### START Koda GUI section ### Form=c:\temp\projekt_wafer\wadem v0.3\main_maske.kxf
    $Main_Form = GUICreate("WADEM " & $GUI_vers, 634, 448, 194, 126)
    $Label_Toolname_1 = GUICtrlCreateLabel("WADEM", 248, 16, 107, 36)
    GUICtrlSetFont(-1, 20, 800, 4, "Arial")
    $Label_Toolname_2 = GUICtrlCreateLabel("Waferweise, automatisierte Diagrammerstellung elektrischer Messungen", 136, 56, 341, 17)

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

    $Tab_WADEM = GUICtrlCreateTab(8, 80, 617, 257)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $Tab1_Main = GUICtrlCreateTabItem("Hauptseite")

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

    GUICtrlSetState(-1, $GUI_SHOW)

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

    $Label_FKT = GUICtrlCreateLabel("FKT", 52, 137, 33, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $FKT_Input = GUICtrlCreateInput("", 92, 137, 217, 21)

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

    ; $LabelWaferzahl = GUICtrlCreateLabel("Waferanzahl", 52, 169, 94, 24)
    ; GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    ; $WaferzahlInput = GUICtrlCreateInput("", 228, 169, 81, 21)

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

    $LabelWaferzahl = GUICtrlCreateLabel("Waferanzahl", 444, 122, 94, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $WaferzahlInput = GUICtrlCreateInput("", 548, 122, 33, 22, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")

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

    $LabelSavePathInfo = GUICtrlCreateLabel("Speicherpfad zu den Tests:", 52, 241, 198, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $TestPathInput = GUICtrlCreateInput("", 52, 273, 200, 21)
    $RezeptOrdner_Selector = GUICtrlCreateButton("Suche", 272, 272, 41, 25, 0)

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

    $LabelRezeptListe = GUICtrlCreateLabel("Chip-Typ", 52, 201, 66, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $RezeptListe = GUICtrlCreateCombo("", 132, 201, 177, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $CBS_SORT))
    GUICtrlSetData(-1, $DropDownFileList)

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

    $Label_Antest_Select = GUICtrlCreateLabel("Antest-FKT mit auswählen:", 408, 160, 160, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Checkbox_Antest = GUICtrlCreateCheckbox("", 568, 160, 17, 17)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")

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

    $Input_AntestFKT = GUICtrlCreateInput("", 504, 184, 81, 22, $ES_RIGHT)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetState($Input_AntestFKT, $GUI_HIDE)
    $LabelAntestFKT = GUICtrlCreateLabel("Antest-FKT:", 408, 184, 87, 22)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetState($LabelAntestFKT, $GUI_HIDE)
    $select_Antest = GUICtrlCreateButton("Antest auswählen", 480, 208, 105, 25, 0)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetState($select_Antest, $GUI_HIDE)

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

    ; ### Hier liegt wohl irgendwo was Problem ... hoff ich mal

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

    $select_Wafer = GUICtrlCreateCheckbox("Selektive Waferauswahl?", 416, 248, 169, 17)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")

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

    $Input_selectWafer_Von = GUICtrlCreateInput("", 536, 272, 41, 22, $GUI_HIDE)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Label_selectWafer_Von = GUICtrlCreateLabel("Von:", 416, 272, 36, 22, $GUI_HIDE)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")

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

    $Input_selectWafer_Bis = GUICtrlCreateInput("", 536, 296, 41, 22, $GUI_HIDE)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Label_selectWafer_Bis = GUICtrlCreateLabel("Bis:", 504, 272, 31, 22, $GUI_HIDE)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")

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

    GUICtrlSetState(-1, $GUI_SHOW)

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

    $Tab2_Extras = GUICtrlCreateTabItem("Extras")

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

    $createBTN = GUICtrlCreateButton("erzeugen", 496, 288, 97, 33, 0)

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

    GUICtrlCreateTabItem("")

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

    $StartBTN = GUICtrlCreateButton("Start", 96, 344, 161, 49)
    GUICtrlSetFont(-1, 18, 400, 0, "Arial")

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

    $ExitBTN = GUICtrlCreateButton("Exit", 272, 344, 161, 49)
    GUICtrlSetFont(-1, 18, 400, 0, "Arial")

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

    GUISetState(@SW_SHOW)

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

    #EndRegion ### END Koda GUI section ###
    ; ################################################################################################

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

    $dummy = GUICtrlRead($Checkbox_Antest)
    $dummy2 = GUICtrlRead($select_Wafer)
    ;$State = False

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

    ; GUI starten
    While 1
    $nMsg = GUIGetMsg()
    UpdateWaferAnzahl()

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

    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $ExitBTN
    Exit

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

    Case $RezeptOrdner_Selector
    Messungsordner_auswaehlen()

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

    Case $select_Antest
    If $var_messurementpath = "" Then
    MsgBox(4096, "FEHLER", "Bitte wählen sie zuerst den Pfad der Messungen")
    Else
    AntestFKTwaehlen()
    EndIf

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

    Case $Checkbox_Antest
    If BitAND(GUICtrlRead($Checkbox_Antest), $GUI_UNCHECKED) Then
    GUICtrlSetState($LabelAntestFKT, $GUI_HIDE)
    GUICtrlSetState($Input_AntestFKT, $GUI_HIDE)
    GUICtrlSetState($select_Antest, $GUI_HIDE)
    ElseIf BitAND(GUICtrlRead($Checkbox_Antest), $GUI_CHECKED) Then
    GUICtrlSetState($LabelAntestFKT, $GUI_SHOW)
    GUICtrlSetState($Input_AntestFKT, $GUI_SHOW)
    GUICtrlSetState($select_Antest, $GUI_SHOW)
    EndIf

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

    Case $select_Wafer
    If BitAND(GUICtrlRead($select_Wafer), $GUI_UNCHECKED) Then
    GUICtrlSetState($Label_selectWafer_Von, $GUI_HIDE)
    GUICtrlSetState($Input_selectWafer_Von, $GUI_HIDE)
    GUICtrlSetState($Label_selectWafer_Bis, $GUI_HIDE)
    GUICtrlSetState($Input_selectWafer_Bis, $GUI_HIDE)
    ElseIf BitAND(GUICtrlRead($select_Wafer), $GUI_CHECKED) Then
    GUICtrlSetState($Label_selectWafer_Von, $GUI_SHOW)
    GUICtrlSetState($Input_selectWafer_Von, $GUI_SHOW)
    GUICtrlSetState($Label_selectWafer_Bis, $GUI_SHOW)
    GUICtrlSetState($Input_selectWafer_Bis, $GUI_SHOW)
    EndIf

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

    Case $createBTN
    ; pre_run_check() ; Prüfen, ob in allen Feldern Werte eingegeben/ausgewählt wurden --> sonst Fehlermeldung
    ; pre_set_vars() ; Variabeln vor Start setzen
    ; INIs_einlesen() ; ini-Dateien einlesen

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

    ; read_Textfiles() ; TESTWEISE ... Verworfen

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

    Case $StartBTN

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

    ; pre_run_check() ; Prüfen, ob in allen Feldern Werte eingegeben/ausgewählt wurden --> sonst Fehlermeldung
    ; INIs_einlesen() ; ini-Dateien einlesen
    ; pre_set_vars() ; Variabeln vor Start setzen
    ; get_desk_res() ; Bildschirmauflösung ermitteln und die Position des Textfeldes bestimmen
    ; pre_run_funcs() ; Excel zum aktiven Fenster machen

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

    ; Tabellenblaetter_loeschen() ; die ersten 2 Tabellenblätter löschen
    ; Wafer_einlesen_loop_neu()
    ; Klassenwerte()
    ; diag_pre_pre_run() ; zwischen Klassenwerten & diag_loop_all einfügen
    ; Diag_Loop_all() ; alle Diagramme aller Wafer erzeugen !!Achtung!! Fehler bei leeren Tests-Files
    ; run_ready_Meldung()

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

    EndSwitch
    WEnd

    [/autoit]

    Danke für eure Hilfe, Freddy

  • Hallo fredowsky,

    dein Skript ist ohne die includes nicht lauffähig:

    In dem von dir geposteten Teil kann ich den Fehler nicht finden,

    mfg autoBert

    • Offizieller Beitrag

    Das Problem ist, dass Du die GUI-Elemente nach dem erstellen nicht ausblendest. Deswegen passiert das erst, wenn Du den Haken bei der Checkbox setzt und wieder entfernst.

    Was Du da versucht hast, $GUI_HIDE als Style einzutragen funktioniert nicht. Dort kommen die Control-Styles rein, nicht der Status. Den Status musst Du mit GUICtrlSetState setzen.
    Also z.B. so:

    [autoit]


    $Input_selectWafer_Von = GUICtrlCreateInput("", 536, 272, 41, 22)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUICtrlSetState(-1, $GUI_HIDE)

    [/autoit]
  • Danke für eure Hilfe!

    Das mit dem -1 bei GUICtrlSetState wusste ich bisher auch nicht. Ich hab immer den Variablennamen genommen. Macht das eigentlich einen Unterschied?

    [autoit]


    $Input_selectWafer_Von = GUICtrlCreateInput("", 536, 272, 41, 22)
    GUICtrlSetState($Input_selectWafer_Von, $GUI_HIDE)

    [/autoit]
    • Offizieller Beitrag

    -1 bezieht sich auf das zuletzt erstellte Control.
    Um sicher zu gehen kannst du aber das Controlid (Variablennamen) benutzen, dann kommst du auch nicht durcheinander, wenn du mal was in deinem Script einfügst.