Announcement

Collapse
No announcement yet.

Fenster Ein-/Ausblendeffekt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fenster Ein-/Ausblendeffekt

    Hallo,

    ich habe einen Sourcecode kopiert und in meinem Projekt zur Testzwecken mal eingefügt.

    Der Einblendeffekt funktioniert sehr gut, der Ausblendeffekt aber nicht.
    Es blendet sich die Form1 ein und da bleibt es auch stehen.

    1)Wer kann mir anhand des Codes den Fehler sagen?
    2)Was muss ich dazu schreiben wenn sich nach dem Ausblendeffekt die Form2 automatisch (nicht per Button) öffnen soll?

    Danke für de Hilfe

    Gruß
    Chara

    Hier der Code:

    #Region "FensAnim"

    ' zunächst die benötigten API-Deklarationen
    Private Declare Function AnimateWindow Lib "user32" ( _
    ByVal hwnd As Integer, _
    ByVal Time As Integer, _
    ByVal Flags As Integer) As Integer

    Private Const AW_ACTIVATE = &H20000
    Private Const AW_BLEND = &H80000
    Private Const AW_CENTER = &H10
    Private Const AW_SLIDE = &H40000
    Private Const AW_HIDE = &H10000
    Private Const AW_HOR_POSITIVE = &H1
    Private Const AW_HOR_NEGATIVE = &H2
    Private Const AW_VER_POSITIVE = &H4
    Private Const AW_VER_NEGATIVE = &H8
    Private Const WM_PAINT = &HF

    Enum FensAnimArt As Integer
    EINBLENDEN
    AUSBLENDEN
    End Enum

    Enum FensAnimEffekt As Integer
    DIMMEN
    ROLLEN_SEITE
    ROLLEN_MITTE
    SCHIEBEN
    End Enum

    Enum FensAnimRichtung As Integer
    N
    NO
    O
    SO
    S
    SW
    W
    NW
    End Enum
    Private Sub FensAnim( _
    ByVal Fenster As Form, _
    ByVal Art As FensAnimArt, _
    ByVal Effekt As FensAnimEffekt, _
    ByVal Richtung As FensAnimRichtung, _
    ByVal Dauer_ms As Integer)

    ' Fehlerbehandlung aktivieren
    Try
    Dim Flags As Integer = 0

    ' Flag Ein/Ausblenden
    Select Case Art
    Case FensAnimArt.EINBLENDEN
    Flags += AW_ACTIVATE
    Case FensAnimArt.AUSBLENDEN
    Flags += AW_HIDE
    End Select

    ' Effect-Flag addieren
    Select Case Effekt
    Case FensAnimEffekt.ROLLEN_SEITE
    Flags += 0
    Case FensAnimEffekt.ROLLEN_MITTE
    Flags += AW_CENTER
    Case FensAnimEffekt.SCHIEBEN
    Flags += AW_SLIDE
    Case FensAnimEffekt.DIMMEN
    Flags += AW_BLEND
    End Select

    ' Richtungs-Flags addieren
    Select Case Richtung
    Case FensAnimRichtung.N
    Flags += AW_VER_NEGATIVE
    Case FensAnimRichtung.NO
    Flags += AW_VER_NEGATIVE + AW_HOR_POSITIVE
    Case FensAnimRichtung.O
    Flags += AW_HOR_POSITIVE
    Case FensAnimRichtung.SO
    Flags += AW_VER_POSITIVE + AW_HOR_POSITIVE
    Case FensAnimRichtung.S
    Flags += AW_VER_POSITIVE
    Case FensAnimRichtung.SW
    Flags += AW_VER_POSITIVE + AW_HOR_NEGATIVE
    Case FensAnimRichtung.W
    Flags += AW_HOR_NEGATIVE
    Case FensAnimRichtung.NW
    Flags += AW_VER_NEGATIVE + AW_HOR_NEGATIVE
    End Select

    ' Animation ausführen
    ' (Programm/Thread ist solange pausiert)
    AnimateWindow(Fenster.Handle.ToInt32, Dauer_ms, Flags)
    Catch : End Try

    ' sicherheits Fenster anzeigen/verstecken
    ' (falls Animation fehlschlägt!)
    Select Case Art
    Case FensAnimArt.EINBLENDEN
    Fenster.Show()
    Case FensAnimArt.AUSBLENDEN
    Fenster.Hide()
    End Select

    ' sicherheitshalber Neuzeichnen
    ' (um Grafikfehler zu vermeiden)
    Fenster.Refresh()
    End Sub
    #End Region



    Private Sub Form1_Load(ByVal sender As

  • #2
    Hallo!

    ^^das ist jetzt schon fast ein Jahr her... ich kann Dir im Moment nur sagen, warum noch keine Antwort auf dein Post gekommen ist. Neben der Textbox, wo Du dein Posting eintippst, steht ein Hinweistext: <p>"[...]<b>Achtung bei Quellcode:</b> Quellcode-Absätze sollten mit einem &lt;PRE&gt; eingeleitet und mit einem &lt;/PRE&gt; abgeschlossen werden; so bleiben Ihre Einrückungen und sowie die Zeilenumbrüche erhalten.[...]"</p>
    Warum das Ganze?!? nunja, man kann deinen Quelltext dann lesen und versuchen eine Lösung zu finden...

    Wenn Du noch Hilfe zu diesem Problem brauchst, dann poste bitte nochmal mit <i>lesbarem</i> Quellcode! <b>TIP:</b> deine eigenen Posts darfst Du ändern! ;

    Comment


    • #3
      Hallo Nico,

      danke für den Tipp, habe aber das Problem gelöst.
      Wenn ich etwas mehr Zeit habe werde ich die lösung mal posten.

      Gruß
      Char

      Comment

      Working...
      X