GUI

  • Mahlzeit, ich hab mal wieder ne frage undzwar:

    Ich habe beispielsweise in einem Programm ein Haupt GUI, nun öffne ich ein neben GUI wenn man nun versucht das Haupt GUI anzuklicken also in den Vordergrund zu bekommen soll das nicht funktionieren und das neben GUI soll kurz blinken, weiß einer zufällig wie man sowas macht?

    MFG Raicoon

    Einmal editiert, zuletzt von Raicoon (10. Juni 2011 um 20:03)

  • Also ich habe folgendes mal ausprobiert:

    [autoit]

    $gui = GUICreate("Haupt GUI", 429, 279, 35, 33)
    GUISetState(@SW_SHOW)

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

    GUICreate("Neben GUI", 243, 96, -1, -1, -1, -1, $gui)
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(10)
    WEnd

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

    Exit

    [/autoit]

    Aber ich kann das Haupt GUI immer noch anklicken.
    Was hab ich falsch gemacht?

    MFG Raicoon

  • Hi, besser so:

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

    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus

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

    $mainwindow = GUICreate("HauptGUI", 200, 100)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
    GUICtrlCreateLabel("Hallo Welt! Wie geht's?", 30, 10)
    $okbutton = GUICtrlCreateButton("GUI 2", 70, 50, 60)
    GUICtrlSetOnEvent($okbutton, "OKButton")
    GUISetState(@SW_SHOW, $mainwindow)

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

    $mainwindow2 = GUICreate("GUI 2", 200, 100)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
    GUICtrlCreateLabel("Hallo Welt! Wie geht's?", 30, 10)
    $okbutton = GUICtrlCreateButton("GUI 2 close", 70, 50, 75, 22)
    GUICtrlSetOnEvent($okbutton, "_CLOSE")

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

    While Sleep(1000) ; Im Leerlauf bummeln
    WEnd

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

    Func OKButton()
    ;Beachte: an diesem Punkt wäre @GUI_CTRLID gleich $okbutton,
    ;und @GUI_WINHANDLE wäre gleich $mainwindow
    GUISetState(@SW_SHOW, $mainwindow2)
    MsgBox(0, "GUI Event", "Du hast auf OK geklickt!")
    EndFunc

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

    Func CLOSEClicked()
    ;Beachte: an diesem Punkt wäre @GUI_CTRLID gleich $GUI_EVENT_CLOSE,
    ;und @GUI_WINHANDLE wäre gleich $mainwindow
    MsgBox(0, "GUI Event", "Du hast auf CLOSE geklickt! Programm wird beendet...")
    Exit
    EndFunc

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

    Func _CLOSE()
    GUISetState(@SW_HIDE, $mainwindow2)
    EndFunc
    ; Ende

    [/autoit]


    :thumbup:

  • Da passiert das selbe wie bei mir, ich kann das Haupt GUI anklicken wenn das andere geöffent ist.

  • Hallo Raicoon,

    ich habe hier mal mein 1. Projekt ausgegraben, die Hauptgui ist zwar im OnEvent-Modus geskriptet aber das lässt sich auch auf den MsgLoop-Modus anwenden:

    Spoiler anzeigen
    [autoit]

    #include <StaticConstants.au3>
    #include <Date.au3>
    #include <DateTimeConstants.au3>
    #include <EditConstants.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <ListviewConstants.au3>

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

    ;#Include <GuiStatusBar.au3> ;Schwierigkeiten beim Resizen 1 Linie + 1 Label tuns auch

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

    Opt('GUIOnEventMode', 1)
    Opt('MustDeclareVars', 1)

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

    Global $hlstvwHoly = 0
    Global $sTitel = 'Beispiele zur Nutzung der func _Easter'

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

    Local $hMainGui = GUICreate($sTitel, 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
    ;erzeugt eine GUI die zurückgebebene ID wird in der Variablen $hMainGui gespeichert
    ;die GUI hat BOXen für Mininmieren, Maximieren und ist in der Größe frei änderbar
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    ;GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, '_PDOWN')
    ;Verknüpft dem Event $Gui_Event_Close mit der Funktion _End

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

    ;Local $hedtYear = GUICtrlCreateInput("", 10, 10, 200, 25, $ES_NUMBER)
    ;Die Eingabe wird für das zuletzt erstellte Steuerelement auf 4 Zeichen begrenzt
    ;diese Schreibweise ist auch zulässig: GUICtrlSetLimit($hedtYear, 4)
    ;GUICtrlSetLimit(-1, 4)
    ;erzeugt ein Input Steuerelement die zurückgegebe ID wird in der Variablen $hedtYear gespeichert
    ;es sind nur Zahlen für die Eingabe zugelassen
    Local $hedtYear = GUICtrlCreateDate(@YEAR, 110, 10, 90, 25, $DTS_UPDOWN)
    ;erzeugt ein Date Steuerelement die zurückgegebene ID wird in der Variablen $hedtYear gespeichert
    GUICtrlSetFont(-1, 12)
    Local $DTM_SETFORMAT_ = 0x1032
    Local $style = "yyyy"
    GUICtrlSendMsg($hedtYear, $DTM_SETFORMAT_, 0, $style)
    ;es werde nur Jahreszahlen für die Eingabe angezeigt zugelassen 1752 - 9999
    ;GUICtrlSetTip($hedtYear, "bitte Jahreszahl nach 1582 eingeben")
    ;setzt den Tooltip für das InputField
    ;_getHolyDay (eine vom Skript benutzte UserDefinedFunction funktioniert erst ab dem Jahr 1000
    ;ab 1583 sind die Rückgabe-Werte auch sinvoll (Kalenderreform in 1582)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKHEIGHT)
    ;verankert das Inputfield Links, rechts, oben und fixiert die Höhe
    ;beim Resizen bleibt es dadurch auf seiner Position und ändert nur die Breite

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

    GUICtrlCreateButton('&zeigen (eigenes Fenster)', 220, 10, 150, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    ;verankert den Button "Zeigen" rechts und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
    GUICtrlSetOnEvent(-1, '_CallEaster')
    ;Beim Klicken des Buttons wird die Funktion _CallEaster aufgerufen

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

    Local $hlblErgebnis = GUICtrlCreateLabel("hier steht danach das Ergebnis", 12, 50, 200)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
    ;verankert das Label links und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand

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

    GUICtrlCreateButton('&berechnen (Label links)', 220, 45, 150, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    ;verankert den Button "Zeigen" rechts oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
    GUICtrlSetOnEvent(-1, '_CallEasterQ')

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

    GUICtrlCreateButton('&in ListView', 220, 80, 150, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    GUICtrlSetOnEvent(-1, '_CallEasterA')

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

    GUICtrlCreateButton('Be&enden', 220, 115, 150, 25)
    GUICtrlSetOnEvent(-1, '_END')
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)

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

    $hlstvwHoly = GUICtrlCreateListView("Feiertag | Datum ", 12, 80, 200, 140, $LVS_REPORT, $LVS_EX_GRIDLINES)
    GUICtrlSetResizing($hlstvwHoly, $GUI_DOCKBORDERS)
    ;verankert das Listview per Namen an allen Ecken, alle Größenänderungen
    ;der Abstand nach Links,rechts,oben und unten bleibt immer gleich
    GUICtrlSetState($hlstvwHoly, $GUI_HIDE + $GUI_DISABLE)

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

    GUICtrlCreateGraphic(0, 230, 400, 2, $SS_BLACKRECT)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKLEFT + $GUI_DOCKBOTTOM)
    Global $hStatus = GUICtrlCreateLabel("", 5, 235, 400, 25)

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

    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKLEFT + $GUI_DOCKBOTTOM)
    ;verankert das Label Links, rechts und unten; fixiert die Höhe
    ;beim Resizen bleibt es dadurch auf seiner Position und ändert nur die Breite wird angepasst
    GUISetState()

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

    While 1
    Sleep(120)
    WEnd

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

    Func _End()
    GUIDelete($hMainGui)
    Exit
    EndFunc ;==>_End

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

    Func _CallEaster()
    Local $iYear, $iDay
    GUICtrlSetState($hlstvwHoly, $GUI_HIDE + $GUI_DISABLE)
    ;if $hlstvwHoly<>0 Then
    ; GUICtrlDelete($hlstvwHoly)
    ; $hlstvwHoly=0
    ;EndIf
    $iYear = GUICtrlRead($hedtYear)
    If $iYear = "" Then $iYear = "0"
    If $iYear < 1582 Then
    GUICtrlSetData($hlblErgebnis, "")
    GUICtrlSetData($hStatus, "Das Jahr muss größer als 1582 sein! (Kalenderreform)")
    Return ;_getHolyDay liefert vorher immer den gleichen Wert , ab 1583 sind die Werte auch sinnvoll
    EndIf
    GUICtrlSetData($hStatus, "")
    $iDay = _Easter($iYear, False, 'Osterberechnung für Jahr: ' & $iYear, $hMainGui, $WS_VSCROLL)
    ;zeigt die eingebaut GUI in :Easter
    GUICtrlSetData($hlblErgebnis, "Ostersonntag ist der " & $iDay & ".Tag im Jahr " & $iYear)
    ;$hlblErgebnis wird upgedatet
    Opt('GuiEventOptions', 1)
    EndFunc ;==>_CallEaster

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

    Func _CallEasterQ()
    Local $iOS, $iYear
    GUICtrlSetState($hlstvwHoly, $GUI_HIDE + $GUI_DISABLE)
    ;if $hlstvwHoly<>0 Then
    ; GUICtrlDelete($hlstvwHoly)
    ; $hlstvwHoly=0
    ;EndIf
    $iYear = GUICtrlRead($hedtYear)
    If $iYear = "" Then $iYear = "0"
    If $iYear = "" Then $iYear = "0"
    $iOS = _Easter($iYear, '' & $iYear, True)
    ;ruft nur die Anzahl der Tage (1.Jan =1) ab und speichert weist diese der Variablen $iOS zu
    GUICtrlSetData($hlblErgebnis, "Ostersonntag ist der " & $iOS & ".Tag im Jahr " & $iYear)
    ;dem Steuerelement mit der ID:$hlblErgebnis wird der Wert der Variablen $iOS zugewiesen
    If $iYear < 1582 Then GUICtrlSetData($hStatus, "Der Tag entspricht unserem heutigen Kalender!")
    EndFunc ;==>_CallEasterQ

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

    Func _CallEasterA()
    Local $iOS, $iYear
    $iYear = GUICtrlRead($hedtYear)
    If $iYear = "" Then $iYear = "0"
    If $iYear < 1582 Then
    GUICtrlSetData($hlblErgebnis, "")
    GUICtrlSetData($hStatus, "Das Jahr muss größer als 1582 sein! (Kalenderreform)")
    Return ;_getHolyDay liefert vorher immer den gleichen Wert , ab 1583 sind die Werte auch sinnvoll
    EndIf
    GUICtrlSetData($hStatus, "")
    ;$hlstvwHoly=GUICtrlCreateListView("Feiertag | Datum ",5, 75, 200, 200)
    ;GUICtrlSetResizing($hlstvwHoly, $GUI_DOCKBORDERS)
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($hlstvwHoly))
    ;alle Einträhe im ListView werden gelöscht
    GUICtrlSetState($hlstvwHoly, $GUI_SHOW + $GUI_ENABLE)
    $iOS = _Easter($iYear, 'Osterberechnung für Jahr: ' & $iYear, True)
    ;ruft nur die Tageszahl ab
    GUICtrlSetData($hlblErgebnis, "Ostersonntag ist der " & $iOS & ".Tag im Jahr " & $iYear)
    GUICtrlCreateListViewItem(_getHolyday("Karfreitag:|", $iOS - 2, $iYear), $hlstvwHoly)
    ;fügt der Listview di mit Hilfe der in $hlstvwHoly gesoeicherten ID angesprochen werden kann
    ;mit dem zurückgegbenen Wert von _getHolyday($sHT,$iDate,$iYear) einen Listeneintrag hinzu
    ;der Separator ist kann in $sHT entahlten sein, wenn nicht wird er angehängt
    GUICtrlCreateListViewItem(_getHolyday("Ostersamstag:|", $iOS - 1, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Ostersontag:|", $iOS, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Ostermontag:|", $iOS + 1, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Christi Himmelfahrt:|", $iOS + 39, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Pfingstsonntag:|", $iOS + 49, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Pfingstmontag:|", $iOS + 50, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Fronleichnam:|", $iOS + 60, $iYear), $hlstvwHoly)
    EndFunc ;==>_CallEasterA
    #cs
    Func _PDOWN()
    MsgBox(0,"Klick auf ",@GUI_CtrlId)
    EndFunc
    #ce

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

    ;===============================================================================
    ;Function Name..: _Easter($iYear [,$bQuiet] [, $sTitle] [,$hParent] [, $sEditStyle] [, $iWidth] [, $iHeight] [, $iLeft] [, $iTop])
    ;Description....: errechnet das Datum von Ostern für jedes übergebene Jahr
    ;Parameter(s)...: $iYear = das Jahr für das Ostern errechnet werden soll
    ; $bQuiet = Schalter für "stumme Ausgabe" True es wird nur gerechnet aber nicht angezeigt
    ; $sTitle = Fenstertitel (optional)
    ; $hParent = ID des aufrufenden Fensters (optional, Stabdard = 0)
    ; wenn dieser Parameter übergeben wird verhält wird das Anzeigefenster
    ; Modal angezeigt, d.h. es ist automatisch im Vordergrund
    ; vor dem aufrufenden Fenster (verliert aber leider den Focus, beim Wechsel
    ; zu anderer Anwendung und wieder zurück, d.h man muß einmal in das Fenster klicken)
    ; $sEditStyle = Edit-Style für GUICtrl (optional)
    ; $iWidth = Breite des Fensters (optional, Standard = 400 Pixel)
    ; $iHeight = Höhe des Fensters (optional, Standard = 300 Pixel)
    ; $iLeft = Abstand von links (optional, Standard = zentriert)
    ; $iTop = Abstand von oben (optional, Standard = zentriert)
    ;Return Value...: Ostersonntag
    ;Author.........: (Auto)Bert Osterberechung Formel auf http://www.nabkal.de/gauss2.html gefunden
    ; " GUI-Darstellung Oscar's (http://www.autoit.de) _StringDisplay
    ; in Anfängerfragen zur GUI(Checkbox,Inputbox und welches Gui Konzept) Beitrag #5
    ;===============================================================================
    Func _Easter($iYear, $bQuiet = False, $sTitle = 'Ostern ', $hParent = 0, $EditStyle = -1, $iWidth = 250, $iHeight = 200, $iLeft = -1, $iTop = -1)
    Local $iDay, $iMonth, $sHT, $hGui
    Local $iA = Mod($iYear, 19) ;Gausssche Zykluszahl
    ;a = Jahr mod 19
    ;;ConsoleWrite("A: " & $iYear & " mod 19 =" &$iA & @crlf) ;2009 mod 19 = 14 R
    Local $iB = Mod($iYear, 4)
    ;b = Jahr mod 4
    ;;ConsoleWrite("B: " & $iYear & " mod 4 =" &$iB & @crlf) ;2009 mod 4 = 1 R
    Local $iC = Mod($iYear, 7)
    ;c = Jahr mod 7
    ;;ConsoleWrite("C: " & $iYear & " mod 7 =" &$iC & @crlf) ;2009 mod 7 = 0 R
    Local $iH1 = Floor(Int($iYear / 100))
    ;H1 = Jahr div 100
    ;;ConsoleWrite("H1 " & $iYear & " div 100 = " & $iH1 & @crlf) ;2009 div 100 = 20 R
    Local $iH2 = Floor(Int($iYear / 400))
    ;H2 = Jahr div 400
    ;;ConsoleWrite("H2 " & $iYear & " div 400 = " & $iH2 & @crlf) ;2009 div 100 = 5 R
    ;Local $iAS = 15 + int($iYear/100) - int($iYear/400) -2 ;aequatio solaris
    ;Local $iAL = int($iYear/300) -2 ;aequtio lunaris
    Local $iN = 4 + $iH1 - $iH2 ; 4+20-5 = 19
    ;N = 4 + H1 - H2
    ;;ConsoleWrite("N: 4 +" & $iH1 & "-" & $iH2 &"=" & $iN & @crlf)
    Local $iM = 15 + $iH1 - $iH2 - (Floor(Int(8 * $iH1 + 13) / 25)) ;15+20-5-((8*20+13) div 25] = 24
    ;M = 15 + H1 - H2- [(8 * H1 + 13) div 25]
    ;;ConsoleWrite("M: 15 + " & $iH1 & "-" & $iH2 & "-[8*"& $iH1 & " + 13) div 25] =" &$iM & @crlf)
    Local $iD = Mod((19 * $iA + $iM), 30) ;(19*14 +24) mod 30 = 20
    ;d = (19 * a + M) mod 30
    ;;ConsoleWrite("(D: 19 * " & $iA & " + " & $iM & ") mod 30 = " & $iD & @CRLF)
    Local $iE = Mod(2 * $iB + 4 * $iC + 6 * $iD + $iN, 7)
    ;e = (2 * b + 4 * c + 6 * d + N) mod 7
    ;;ConsoleWrite("(E: 2*" & $ib & " + 4* " & $iC & " + 6*" & $iD & " + " & $iN & " Mod 7) = " & $iE & @CRLF)

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

    Local $iOS = $iD + $iE ;das sind die Anzahl der Tage nach dem 22. März
    ;;ConsoleWrite(@CRLF & "OS: 22 + " & $iD & " + " & $iE & " = " & $iOS & "Tage nach dem 22. März" & @CRLF)
    $iOS = $iOS + 22 ;22 Tage vom März
    If $iOS = 57 Then $iOS = 50
    If ($iD = 28) And ($iE = 6) And ($iA > 10) Then $iOS = 49
    $iOS = $iOS + 59 ;jetzt noch 1. Januar bis 28. Februar hinzuzählen
    If _DateIsLeapYear($iYear) Then $iOS = $iOS + 1 ;im Schaltjahr auch noch den 29. Februar
    If $bQuiet Then Return $iOS
    #cs
    a = Jahr mod 19
    b = Jahr mod 4
    c = Jahr mod 7
    H1 = Jahr div 100
    H2 = Jahr div 400
    N = 4 + H1 - H2
    M = 15 + H1 - H2- [(8 * H1 + 13) div 25]
    d = (19 * a + M) mod 30
    e = (2 * b + 4 * c + 6 * d + N) mod 7z
    Ostern = 22 + d + e Tage nach dem 2. März
    wenn: (ostern = 57) dann: (ostern = 50)
    wenn: (d = 28) und (e = 6) und (a > 10) dann: (ostern = 49)
    ostern: Ostersonntag als Märzdatum
    #ce
    ;ab hier aus Beispiel von Oskar
    If Not IsDeclared('BS_DEFPUSHBUTTON') Then Local Const $BS_DEFPUSHBUTTON = 0x00000001
    If Not IsDeclared('GUI_EVENT_CLOSE') Then Local Const $GUI_EVENT_CLOSE = 0xFFFFFFFD
    If Not IsDeclared('WS_EX_COMPOSITED') Then Local Const $WS_EX_COMPOSITED = 0x02000000
    If Not IsDeclared('WS_MAXIMIZEBOX') Then Local Const $WS_MAXIMIZEBOX = 0x00010000
    If Not IsDeclared('WS_MINIMIZEBOX') Then Local Const $WS_MINIMIZEBOX = 0x00020000
    If Not IsDeclared('WS_SIZEBOX') Then Local Const $WS_SIZEBOX = 0x00040000
    Local $iEventMode = Opt('GUIOnEventMode', 0)
    If $hParent = 0 Then ;Oscar's Beispiel
    $hGui = GUICreate($sTitle, $iWidth, $iHeight, $iLeft, $iTop, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_COMPOSITED)
    Else ;damit sich das Fenster wie ein Toolwindow verhält
    $hGui = GUICreate($sTitle, $iWidth, $iHeight, $iLeft, $iTop, BitOR($DS_MODALFRAME + $DS_SETFOREGROUND, $WS_CAPTION + $WS_SYSMENU + $WS_SIZEBOX), $WS_EX_TOOLWINDOW, $hParent)
    GUISetState(@SW_DISABLE, $hParent)
    EndIf
    GUISwitch($hGui)
    GUISetState(@SW_HIDE, $hGui)
    ;das war ich wieder
    If $iYear < 1583 Then
    Local $hlblHinweis = GUICtrlCreateLabel("für Jahre vor 1583 keine Berechnung möglich!", 5, 5, $iWidth - 10, $iHeight - 35);, $SS_CENTER)
    GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT + $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKRIGHT)
    Else
    Local $hlstvwHoly = GUICtrlCreateListView("Feiertag | Datum ", 5, 5, $iWidth - 10, $iHeight - 35);, BitOr($EditStyle,$LVS_EX_GRIDLINES))
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    ;GUICtrlSetResizing(-1, 2 + 4 + 32 + 64)
    GUICtrlCreateListViewItem(_getHolyday("Karfreitag:|", $iOS - 2, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Ostersamstag:|", $iOS - 1, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Ostersontag:|", $iOS, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Ostermontag:|", $iOS + 1, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Christi Himmelfahrt:|", $iOS + 39, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Pfingstsonntag:|", $iOS + 49, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Pfingstmontag:|", $iOS + 50, $iYear), $hlstvwHoly)
    GUICtrlCreateListViewItem(_getHolyday("Fronleichnam:|", $iOS + 60, $iYear), $hlstvwHoly)
    ;Local $hEdit = GUICtrlCreateEdit($sText, 5, 5, $iWidth - 10, $iHeight - 65, $EditStyle)
    EndIf
    Local $hClose = GUICtrlCreateButton('&Schliessen', $iWidth / 2 - 35, $iHeight - 25, 70, 25, $BS_DEFPUSHBUTTON)
    GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT + $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKRIGHT)
    ControlFocus($hGui, '', $hClose)
    GUISetState(@SW_SHOW, $hGui)
    While True
    Switch GUIGetMsg()
    Case $hClose, $GUI_EVENT_CLOSE
    ExitLoop
    ;Case $GUI_EVENT_RESTORE
    ;GuiSetState(@SW_RESTORE,$hGui)
    ;;ConsoleWrite("Bin wieder da")
    EndSwitch
    ;Sleep(125)
    WEnd
    ;ControlFocus($hGui, '', $hEdit)
    ControlFocus($hGui, '', $hlstvwHoly)
    ;Local $sSelectedText = ControlCommand($hGui, '', $hEdit, 'GetSelected', '')
    ;If @error Then $sSelectedText = ''
    If $hParent <> 0 Then
    GUISetState(@SW_ENABLE, $hParent)
    GUISetState(@SW_SHOWNORMAL, $hParent)
    EndIf
    GUIDelete($hGui)
    Opt('GUIOnEventMode', $iEventMode)
    Return $iOS
    EndFunc ;==>_Easter

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

    ;===============================================================================
    ;Function Name..: _getHolyday($sHT,$iHDay,$iYear)
    ;Description....: ermittelt das Datum des übergegenen x. Tages des Jahres und ertstellt
    ; daraus zusammen mit der Bez. einen String zum Eintragen in eine 2 Spaltige Listview
    ;Parameter(s)...: $sHT = der String mit der Bezeichnung ( Wenn kein Datensparatorzeichen am Schluß
    ; wird einer angehängt
    ; $bHDay = der x. Tag des Jahres (1. Januar = 1)
    ; $iYear = Jahresdatum, muß größer 1000 sein, da _DateDays in Month bei klieneren Zahlen keinen Wert zurückliefert
    ;Return Value...: String für Eintrag in ListView
    ;Author.........: (Auto)Bert
    ;===============================================================================
    Func _getHolyday($sHT, $iHDay, $iYear)
    Local $iDay, $iMonth, $i, $j, $sSep
    $sSep = Opt('GUIDataSeparatorChar')
    If StringRight($sHT, 1) <> $sSep Then $sHT = $sHT & $sSep
    ;ConsoleWrite("getHolyDay " & $iHDay & @CRLF)
    For $i = 1 To 12
    $j = _DateDaysInMonth($iYear, $i)
    If $j >= $iHDay Then
    $iDay = $iHDay
    $iMonth = $i
    EndIf
    $iHDay = $iHDay - $j
    If $iHDay <= 0 Then ExitLoop
    ;ConsoleWrite($i & " : " & $j & ": getHolyDay " & $sHT & " " & $iHDay & @CRLF)
    Next
    If $iDay < 10 Then $sHT = $sHT & '0'
    $sHT = $sHT & $iDay
    $sHT = $sHT & "."
    If $iMonth < 10 Then $sHT = $sHT & '0'
    $sHT = $sHT & $iMonth
    $sHT = $sHT & "." & $iYear
    ;ConsoleWrite("Return getHolyDay " & $sHT & @CRLF)
    Return $sHT
    EndFunc ;==>_getHolyday

    [/autoit]

    mfg autoBert

  • Dann deaktivier doch die Gui ;)

    Spoiler anzeigen
    [autoit]

    $gui = GUICreate("Haupt GUI", 429, 279)
    GUISetState(@SW_SHOW)
    GUISetState(@SW_DISABLE)

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

    GUICreate("Neben GUI", 243, 96, Default, Default, Default, Default, $gui)
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(10)
    WEnd

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

    Exit

    [/autoit]

    21 is only half the truth.

  • Ok, habs herausgefunden danke an AutoBert und Mahagon

    So funktioniert es, was ich wollte:

    [autoit]

    $gui = GUICreate("Haupt GUI", 429, 279, 35, 33)
    GUISetState(@SW_SHOW)

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

    GUICreate("Neben GUI", 243, 96, -1, -1, -1, -1, $gui)
    GUISetState(@SW_SHOW)

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

    GUISetState(@SW_DISABLE, $gui)

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

    While 1
    Sleep(10)
    WEnd

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

    Exit

    [/autoit]

    MFG Raicoon