Form einblenden wie bei Antivir

    • VB.NET

    Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von C0der.

      Form einblenden wie bei Antivir

      Ich brauchte den Code mal... Hab ihn bei mir wie bei Antivir auch für einen Updater verwendet...

      Zur beschreibung:

      Die Form schiebt sich unten Rechts in der ecke langsam ins bild...


      Was wird benötigt?

      - 2 Backgroundworker
      - 1 Variable namens wait:

      VB.NET-Quellcode

      1. Public Class form_einblenden
      2. Public wait as Integer = 5 'je kleiner, um so schneller blendet die Form sich ein... 5 ist schon okay
      3. Private sub blabla
      4. end sub
      5. End Class

      (so in etwa...)

      Die Codes

      Einblenden:

      VB.NET-Quellcode

      1. Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
      2. For y = Screen.PrimaryScreen.WorkingArea.Width - Me.Width To Screen.PrimaryScreen.WorkingArea.Height - Me.Height - 5 Step -1
      3. Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, y)
      4. Threading.Thread.Sleep(wait)
      5. Next
      6. End Sub


      Ausblenden:

      VB.NET-Quellcode

      1. Private Sub BackgroundWorker2_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker2.DoWork
      2. For y = Screen.PrimaryScreen.WorkingArea.Height - Me.Height To Screen.PrimaryScreen.WorkingArea.Width
      3. Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, y)
      4. Threading.Thread.Sleep(5)
      5. Next
      6. Me.Close()
      7. End Sub


      Dessweiteren brauchen wir noch:

      VB.NET-Quellcode

      1. Private Sub updater_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      2. Control.CheckForIllegalCrossThreadCalls = False 'sons gibs n fehler
      3. BackgroundWorker2.RunWorkerAsync() 'effekt starten
      4. End Sub


      1teres damit kein fehler kommt, 2.teres um den effekt auch zu starten ;)

      MfG

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DJ Re-DarK“ ()

      loool Public wait as String = 5????

      schonma was von Option Strict gehört?

      und dann noch Control.CheckForIllegalCrossThreadCalls = False ... also mehr als schrecklich kann der Code nicht sein.

      1. Nutze richtigen Typenzuweisung
      2. Braucht man keine Globale Variable, sondern nutzt Argumente die man dem BGW übergibt
      3. Schonmal was von Delegates gehört?
      4. Bräuchte man nur 1 BG Worker.

      VB.NET-Quellcode

      1. Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
      2. For y = Screen.PrimaryScreen.WorkingArea.Width - Me.Width To Screen.PrimaryScreen.WorkingArea.Height - Me.Height - 5 Step -1
      3. Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, y)
      4. Threading.Thread.Sleep(wait) 'wait nicht Deklariert
      5. Next
      6. End Sub


      also nicht wirklich oder??
      Wait wurde nich Deklariert
      irgendwas haste da wohl falsch gemacht!


      MFG Wej
      @ Nibel
      Kein Kommentar, nur weil dus so machst heißt es nicht das alle das so machen!
      Ansonsten bleibt zu sagen, habe mich nicht beschwert, würde anders aussehen dann!

      habe mittlerweile was anderes gefunden werde mich mit dem hier aber noch mal auseinander setzten!


      MFG Wej
      Vollzitat eines Vorposts an dieser Stelle entfernt ~VaporiZed

      Option Strict muss jeder sich ja wohl selber in seine Form einfügen, brauch ich hier ja wohl nicht nochmal posten ;)

      Zu deinem Schrecklich: Die option wird ja wohl gebrauicht... ich mache doch einen übergriff ;)

      und zu 1. habs auf integer geändert, bitteschön


      Vollzitat eines Vorposts an dieser Stelle entfernt ~VaporiZed
      gemacht, bitte ;)

      MfG

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

      Was habt ihr alle? Bei mir geht es einwandfrei, ich bedanke mich beim Threadersteller. Hier nochmal der Code:

      VB.NET-Quellcode

      1. Public Class Form1 Public wait As Integer = 5 Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork For y = Screen.PrimaryScreen.WorkingArea.Width - Me.Width To Screen.PrimaryScreen.WorkingArea.Height - Me.Height - 5 Step -1 Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, y) Threading.Thread.Sleep(wait) Next
      2. End Sub Private Sub BackgroundWorker2_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker2.DoWork For y = Screen.PrimaryScreen.WorkingArea.Height - Me.Height To Screen.PrimaryScreen.WorkingArea.Width Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, y) Threading.Thread.Sleep(5) Next Me.Close() End Sub
      3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Opacity = 50% Control.CheckForIllegalCrossThreadCalls = False 'sons gibs n fehler BackgroundWorker1.RunWorkerAsync() 'effekt starten End Sub
      4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click BackgroundWorker2.RunWorkerAsync() End SubEnd Class



      Wenn Button1 geklickt wird. wird es wieder ausgeblendet..

      EDIT://
      Sorry für die falsche Formatierung.. Bug..
      Zu deinem Schrecklich: Die option wird ja wohl gebrauicht... ich mache doch einen übergriff ;)

      das Problem ist nur, dass dieser Übergriff vollkommen unschön und gefährlich ist(da verstecken sich nacher die Fehlerquellen Nummer 1)...nimm anstatt dessen Delegates...
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---