Resizing einer GUI über Buttons

  • Servus Leute,

    Ich Habe hier ein kleines "Schönheitsproblem" mit einer GUI. Diese möchte ich dynamisch vergrößern/verkleinern.
    Das klappt zwar auch, allerdings sieht das eher merkwürdig aus (einfach mal Skript starten und die Buttons nutzen)

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <ArrayMore.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <ButtonConstants.au3>

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

    Opt("GUIResizeMode",$GUI_DOCKALL)
    Opt("GUIOnEventMode", 0)

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

    main()

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

    Func main()

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

    Local $column[1], $attrib[1], $result[1][2], $gui
    Local $height = 50, $gheight = 140

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

    GUISetState(@SW_HIDE, $gui)

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

    $child = GUICreate("Neue Tabelle", 380, 140, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_CHILD), -1, $gui)

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

    GUICtrlCreateLabel("Tabellenname:", 15, 15, 80, 20)

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

    $tabellenname = GUICtrlCreateInput("", 110, 15, 120, 20)

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

    GUICtrlCreateLabel("Spaltennamen:", 15, 50, 80, 20)

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

    $column[0] = GUICtrlCreateInput("", 110, 50, 120, 20)

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

    $attrib[0] = GUICtrlCreateCombo("", 245, 50, 120, 20)
    GUICtrlSetData(-1, "Text|Int|Real|Blub")

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

    $plus = GUICtrlCreateButton("", 260, 10, 30, 30, $BS_ICON)
    GUICtrlSetImage(-1, "shell32.dll", 5)

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

    $minus = GUICtrlCreateButton("", 310, 10, 30, 30, $BS_ICON)
    GUICtrlSetImage(-1, "shell32.dll", 32)

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

    $anlegen = GUICtrlCreateButton("Anlegen", 15, 80, 80, 20)

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

    $abbrechen = GUICtrlCreateButton("Abbrechen", 15, 110, 80, 20)

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

    GUISetState(@SW_SHOW, $child)

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

    While 1

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

    $msg = GUIGetMsg()

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

    Select
    Case $msg = $GUI_EVENT_CLOSE Or $msg = $abbrechen
    GUIDelete($child)
    GUISetState(@SW_SHOW, $gui)
    Return 0

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

    Case $msg = $plus
    _ArrayAdd($column, "")
    _ArrayAdd($attrib, "")
    $column[UBound($column)-1] = GUICtrlCreateInput("", 110, $height + (UBound($column) - 1)*30, 120, 20)
    $attrib[UBound($attrib)-1] = GUICtrlCreateCombo("", 245, $height + (UBound($attrib) - 1)*30, 120, 20)
    GUICtrlSetData(-1, "Text|Int|Real|Blub")
    WinMove("Neue Tabelle", "", Default, Default, 386, $gheight + (UBound($column) - 1)*30)

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

    Case $msg = $minus
    If UBound($column) > 1 Then
    GUICtrlDelete($column[UBound($column) - 1])
    GUICtrlDelete($attrib[UBound($attrib) - 1])
    _ArrayDelete($column, UBound($column))
    _ArrayDelete($attrib, UBound($attrib))
    WinMove("Neue Tabelle", "", Default, Default, 386, $gheight + (UBound($column)*30))
    EndIf

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

    Case $msg = $anlegen
    For $i = 0 To Ubound($column) -1
    If GUICtrlRead($column[$i]) = "" Then ExitLoop
    $result[$i][0] = StringReplace(GUICtrlRead($column[$i]), " ", "")
    $result[$i][1] = GUICtrlRead($attrib[$i])
    _Array2DAdd($result,"")
    Next
    $result[UBound($result,1)-1][0] = GUICtrlRead($tabellenname)
    GUIDelete($child)
    GUISetState(@SW_SHOW, $gui)
    Return $result

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

    EndSelect

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

    Sleep(30)

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

    DllCall("Psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)

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

    WEnd

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

    EndFunc

    [/autoit]

    Ich danke für die Hilfe.

    Gruß

    Prajoss

    ps: weiß grad jemand aus dem Kopf wie man Ressourcen(Bild-Dateien) in Bit Code umwandelt um diese direkt im Script einzubinden?

    "Never touch a running System!"

    Einmal editiert, zuletzt von Prajoss (12. August 2011 um 07:59)