GUI-Vergrößerungseffekt

  • Hi!

    Ich möchte einen Vergrößerungseffekt für eine GUI (beim Erstellen) wie auf diesen Bildern machen.

    Bis jetzt hab ich das ganze mit GUICreate, GUIDelete etc... Man sieht ja dass das ganze ein wenig hackt und dann auch noch ewig Fenster produziert. Gibt es irgendeine UDF wie GUISetSize oder so ähnlich? Das würde mri einiges sparen.

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>

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

    Global $width = "500"

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

    For $stepwidth = 50 To $width Step +10
    $create = GUICreate("Titel", $stepwidth, 500)
    ;~ GUISetStyle($WS_POPUP, $WS_EX_TOOLWINDOW)
    GUISetState(@SW_SHOW)
    Sleep(100)
    If $stepwidth = $width Then
    ExitLoop
    Else
    GUIDelete($create)
    EndIf
    Next
    Beep(500, 50)
    Sleep(8000)

    [/autoit]

    Jemand eine Idee?

    Gruß fabs

    Einmal editiert, zuletzt von fabs (16. Juli 2008 um 21:37)

  • Danke, ich werds mal probieren.

    BugFix :
    Also mit Opera wird erst die Seite im Hintergrund grau und dann das Bild geladen sowie aufgezogen (X-Achse sowie Y).

    edit:
    Wie soll das mit WinMove funktionieren? Das verschiebt doch das ganze Fenster. Ich möchte, dass die GUI vorerst nur vertikal größer wird. Sieht man doch im Beispiel ;)

    edit2:
    Grade nachgelesen. Irgendwie geht ja Fenstergröße ändern. Ich raff nur nicht was die mit "If x and y equal to the Default keyword no move occurs, just resizing" meinen...

    Einmal editiert, zuletzt von fabs (16. Juli 2008 um 19:30)

  • ich habs mal probiert und bin mit dem ergebniss zu frieden, aber freu dich nicht zu früh wir sind ja hier um zu lernen den code gibs nich :P .
    aber nochn paar tips: zuerst in variablen die x und y position der gui festlegen.
    dann mit winmove die alten x und y positionen angeben und die höhe und breite ändern.
    aber achtung wenn du nur die höhe änderst dann wird das fenster nur nach oben größer, aber es soll ja in beide richtungen gezogen werden (musst du doch noch was in der y-achse ändern).
    wenn du es nich schaffst dann meld dich vlt kriegste mich doch noch rum :rofl:

  • Also du musst mit WinGetPos erstmal die Position der GUI abfragen und dann kannst du die Größe mit WinMove verändern

  • Ja mein Hauptproblem war das Resizen mit WinMove ^^ hab das mit den Default-Parametern einfach nicht gerafft xD Mal wieder am den einfachsten Sachen hängen geblieben. Danke Leute

  • na gut wo dus jetz eh hinkriegst kann ich das hier jetz mal posten, aber nur gucken wenn du mal nich weiter weißt :P .

    Nur zum Spicken
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>

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

    Global $width = "500"
    Global $height = "200"
    Dim $Pos[2]
    $Pos[0] = @DesktopWidth/2
    $Pos[1] = @DesktopHeight/2-$height

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

    GUICreate("Try", 10, 1, $Pos[0], $Pos[1], $WS_Popup)
    GUISetState()
    For $y = 2 To $height
    WinMove("Try", "", $Pos[0], ($Pos[1]-$y/2)+$height/2, 10, $y)
    Sleep(5)
    Next
    For $x = 11 To $width
    WinMove("Try", "", $Pos[0]-$x/2+5, $Pos[1], $x)
    Sleep(5)
    Next

    [/autoit]