Librería de Snippets para VB.NET !! (Compartan aquí sus snippets)

Iniciado por Eleкtro, 18 Diciembre 2012, 22:23 PM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

#210
Cita de: Ikillnukes en 23 Junio 2013, 01:29 AM
Por cierto, y lo demás que me comentas, que opinas, has ido a saco al Timer y no me has comentado nada sobre lo demás. :¬¬ :xD :xD

No tenía nada más que decir al respecto... pero bueno, si quieres algún tipo de opinión... tu lo has querido xD :

1. Aunque no describes las cosas por sus términos correctos al menos hay muchos comentarios, eso es algo de agradecer que siempre me gusta ver en los codes...
2. El mports NET sobra, no lo utilizas en ese código...
3. No me gusta que importes "IO" para evitar escribirlo en 1 instrucción pero en la otra lo sigas escribiendo.
4. Me parece excesivo comprobar cada 15 segundos una actualización del programa :-/, yo lo comprobaría al ejecutar la aplicación y ya está, pero bueno, esto ya...pa gustos colores.
5. Es un code básico, cumple su función, no puedo opinar mucho más sobre el code, y lo otro...bueno, son snippets copiados, así que tampoco puedo opinar..

CitarPD: Tengo una duda... El "temer" sigue activado en los otros forms? Es que recuerdo que tuve un conflicto con un Timer en otro Form y era por que no lo pasaba
...
...Veo que no hemos aprendido nada en todo este tiempo IKillNukes...

Contéstate tu mismo la pregunta: ¿El timer lo instancias en otros forms/classes?

Saludos








z3nth10n

Sobre lo del Timer, yo recuerdo que una vez tuve un conflicto en otro Form que no tenía que ver nada con ese Timer, y el caso es que cuando le daba dispose al Form creo que se paraba.... No se ni lo que digo xD

A ver si termino el Updater. :P

Interesados hablad por Discord.

Eleкtro

Cita de: Ikillnukes en 23 Junio 2013, 11:14 AMen otro Form que no tenía que ver nada con ese Timer,

el caso es que cuando le daba dispose al Form creo que se paraba....

Si haces eso no se para el Timer, diréctamente lo destruyes, ya te expliqué porque...

saludos!








z3nth10n

#213
Gracias, entre sarcasmos e ironías no pillaba muy bien a lo que te referias. Agradezco que hayas sido claro. :laugh:

Sobre lo de que 15 secs es excesivo, voy a hacer que el timer se pueda configurar de la manera que tu has dicho, eso ya lo pensé, pero me dije que sería mas hardcore hacer que se comprobase cada X secs. :)




Con tu cortesía has provocado un error :laugh:

CitarError   1   End of statement expected.   C:\Users\Alvaro\Documents\IkillLauncher\IkillLauncher\frmMain.vb   31   56   IkillLauncher

Me refiero a esta parte de code:

Código (vbnet) [Seleccionar]
Dim WithEvents temer As System.Windows.Forms.Timer With {.Interval = 15000, .Enabled = True}

Interesados hablad por Discord.

Eleкtro

@IKillnukes

Hola

1. No te he dicho nada con sarcasmo, quizás serio si (ya sabes porque), pero sarcasmo no.

Cita de: Ikillnukes en 23 Junio 2013, 15:00 PMCon tu cortesía has provocado un error :laugh:
Código (vbnet) [Seleccionar]
Dim WithEvents temer As System.Windows.Forms.Timer With {.Interval = 15000, .Enabled = True}

2. Obviamente no puedes modificar las propiedades de un objeto que no has instanciado... vuelve a leer la línea que te puse y copiala tal cual la puse, y luego ya... intenta comprender las cosas y porque tu línea te da error y la mia no.

3. Este hilo es para postear snippets, porfavor no alarguemos más esta conversación con tus dudas, ya están resueltas.

saludos








Eleкtro

#215
Ejemplo de como usar la librería "Thresher" para crear un Bot de IRC.

http://thresher.sourceforge.net/

Código (vbnet) [Seleccionar]
Module Module1

   Sub Main()
       Dim bot As New IRCBot()
       bot.BotStart()
   End Sub

   Public Class IRCBot
       Private conn As Sharkbite.Irc.Connection

       Public Sub BotStart()
           CreateConnection()
           AddHandler conn.Listener.OnRegistered, AddressOf OnRegistered
           AddHandler conn.Listener.OnPublic, AddressOf OnPublic
           AddHandler conn.Listener.OnPrivate, AddressOf OnPrivate
           AddHandler conn.Listener.OnError, AddressOf OnError
           AddHandler conn.Listener.OnDisconnected, AddressOf OnDisconnected
       End Sub

       Public Sub CreateConnection()
           Dim server As String = "irc.freenode.net"
           Dim nick As String = "Dios"
           Sharkbite.Irc.Identd.Start(nick)
           Dim cargs As Sharkbite.Irc.ConnectionArgs = New Sharkbite.Irc.ConnectionArgs(nick, server)
           conn = New Sharkbite.Irc.Connection(cargs, False, False)
           Try
               conn.Connect()
               Console.WriteLine("Connected to server")
           Catch e As Exception
               Console.WriteLine("Error during connection process.")
               Console.WriteLine(e.ToString)
               Sharkbite.Irc.Identd.Stop()
           End Try
       End Sub

       Public Sub OnRegistered()
           Try
               Sharkbite.Irc.Identd.Stop()
               conn.Sender.Join("#elektrohacker")
               Console.WriteLine("channel joined")
           Catch e As Exception
               Console.WriteLine("Error in OnRegistered(): " & e.Message)
           End Try
       End Sub

       Public Sub OnPublic(ByVal user As Sharkbite.Irc.UserInfo, ByVal channel As String, ByVal message As String)
           conn.Sender.ChangeTopic(channel, "New topic")
           conn.Sender.PrivateMessage(channel, user.Nick & ": " & message)
           conn.Sender.PublicMessage(channel, user.Nick & ": " & message)
       End Sub

       Public Sub OnPrivate(ByVal user As Sharkbite.Irc.UserInfo, ByVal message As String)
           If message = "die" Then
               conn.Disconnect("Goodbye!")
           End If
       End Sub

       Public Sub OnError(ByVal code As Sharkbite.Irc.ReplyCode, ByVal message As String)
           Console.WriteLine("An error of type " + code + " due to " + message + " has occurred.")
       End Sub

       Public Sub OnDisconnected()
           Console.WriteLine("Connection to server closed!")
       End Sub
   End Class

End Module








Eleкtro

#216
Hoy pensé en añadir la funcionalidad de seleccionar todo el texto haciendo triple click sobre un textbox... y he dado con este snippet: http://www.codeproject.com/Articles/23498/A-Simple-Method-for-Handling-Multiple-Clicking-on

Es un contador de clicks, así que se puede utilizar como Triple-Click, o Cuadruple-Click o lo que quieran... xD

Código (vbnet) [Seleccionar]
Public Class Form1

#Region " Mouse-Click Count "

   ''' <summary>
   ''' The Click-Timer area bounds.
   ''' </summary>
   ''' <remarks></remarks>
   Private ClickArea As Rectangle

   ''' <summary>
   ''' The mouse button clicked.
   ''' </summary>
   ''' <remarks></remarks>
   Private ClickButton As MouseButtons

   ''' <summary>
   ''' Accumulate clicks for the Click-Timer.
   ''' </summary>
   ''' <remarks></remarks>
   Private ClickCount As Int32

   ''' <summary>
   ''' Save the Click-Timer double-click delay time (ms).
   ''' </summary>
   ''' <remarks></remarks>
   Private ClickDelay As Int32 = SystemInformation.DoubleClickTime

   ''' <summary>
   ''' String description of the appropriate owner of the Click-Timer expiry event.
   ''' </summary>
   ''' <remarks></remarks>
   Private ClickOwner As String = ""

   ''' <summary>
   ''' Save the Click-Timer double-click area bounds.
   ''' </summary>
   ''' <remarks></remarks>
   Private ClickSize As Size = SystemInformation.DoubleClickSize

   ''' <summary>
   ''' Create a new Click-Timer with events.
   ''' </summary>
   ''' <remarks></remarks>
   Private WithEvents ClickTimer As New Timer

   ''' <summary>
   ''' Click-Timer "Tick" event handler.
   ''' </summary>
   ''' <param name="sender">Event object owner.</param>
   ''' <param name="e">Event arguments.</param>
   ''' <remarks></remarks>
   Private Sub ClickTimer_TickHandler(ByVal sender As Object, ByVal e As EventArgs) Handles ClickTimer.Tick
       Me.ClickTimer.Stop()
       Me.ClickCount = 0
   End Sub

   ''' <summary>
   ''' Initialise the Click-Timer with Owner and valid double-click area.
   ''' </summary>
   ''' <param name="aOwnerControl">Click-Timer owner control (string).</param>
   ''' <param name="aMouseButton">Mouse button clicked.</param>
   ''' <param name="aClickPoint">Click point for definition of the valid double-click area.</param>
   ''' <remarks></remarks>
   Private Sub ClickTimer_Initialise(ByVal aOwnerControl As String, _
                                     ByVal aMouseButton As MouseButtons, _
                                     ByVal aClickPoint As Point)

       ' Stop the Click-Timer.
       Me.ClickTimer.Stop()
       ' Save the owner control text.
       Me.ClickOwner = aOwnerControl
       ' Save the mouse button.
       Me.ClickButton = aMouseButton
       ' This is the first click.
       Me.ClickCount = 1
       ' Define the valid double-click area for any multi-clicking.
       Me.ClickArea = New Rectangle _
             (aClickPoint.X - Me.ClickSize.Width \ 2 _
             , aClickPoint.Y - Me.ClickSize.Height \ 2 _
             , Me.ClickSize.Width, Me.ClickSize.Height)
       ' Set the system default double-click delay.
       Me.ClickTimer.Interval = Me.ClickDelay
       ' Start the Click-Timer.
       Me.ClickTimer.Start()

   End Sub

   ''' <summary>
   ''' Register a mouse click (or double click) event.
   ''' </summary>
   ''' <param name="aOwnerControl">Click-Timer owner control (string).</param>
   ''' <param name="aMouseButton">Mouse button clicked.</param>
   ''' <param name="aClickPoint">Click point for definition of the valid double-click area.</param>
   ''' <remarks></remarks>
   Private Sub ClickTimer_Click(ByVal aOwnerControl As String, _
                                ByVal aMouseButton As MouseButtons, _
                                ByVal aClickPoint As Point)

       ' Handle this click event.
       If Me.ClickTimer.Enabled Then
           ' The Click-Timer is going, stop it and check we haven't changed controls.
           Me.ClickTimer.Stop()
           If Me.ClickOwner = aOwnerControl _
           AndAlso Me.ClickButton = aMouseButton _
           AndAlso Me.ClickArea.Contains(aClickPoint) Then
               ' Working with the same control, same button within a valid double-click area so bump the count.
               Me.ClickCount += 1
               ' Set the system default double-click delay.
               Me.ClickTimer.Interval = Me.ClickDelay
               ' Start the Click-Timer.
               Me.ClickTimer.Start()
           Else
               ' Not working with the same control. Initialise the Click-Timer.
               Me.ClickTimer_Initialise(aOwnerControl, aMouseButton, aClickPoint)
           End If
       Else
           ' The timer is not enabled. Initialise the Click-Timer.
           Me.ClickTimer_Initialise(aOwnerControl, aMouseButton, aClickPoint)
       End If

   End Sub

#End Region

   Private Sub TextBox1_Clicked(ByVal sender As Object, ByVal e As MouseEventArgs) _
   Handles TextBox1.MouseClick, TextBox1.MouseDoubleClick

       Me.ClickTimer_Click(sender.name, e.Button, e.Location)

       If ClickCount = 3 Then ' Triple Click to select all text.
           sender.SelectAll()
       End If

   End Sub

End Class


Saludos.








Eleкtro

#217
Función para comprobar si un ListView contiene cierto texto:

PD: La verdad es que no es muy útil a menos que le añada más opciones, la hice porque muchas veces se me olvida el nombre del método "FindItemWithText" y eso me hace perder tiempo :silbar:

Código (vbnet) [Seleccionar]
#Region " Find ListView Text "

   ' [ Find ListView Text Function ]
   '
   ' // By Elektro H@cker
   '
   ' Examples :
   ' MsgBox(Find_ListView_Text(ListView1, "Hello"))
    ' If Find_ListView_Text(ListView1, "Hello") Then...

   Private Function Find_ListView_Text(ByVal ListView As ListView, ByVal Text As String) As Boolean
       Try : Return Convert.ToBoolean(ListView.FindItemWithText(Text)) : Catch : Return True : End Try
   End Function

#End Region


Ejemplo de uso:

Código (vbnet) [Seleccionar]
   Private Sub Status_Timer_Tick(sender As Object, e As EventArgs) Handles Status_Timer.Tick

       If Find_ListView_Text(ListView1, TextBox_Filename.Text) Then
           Label_Status.Text = "Current song found"
       Else
           Label_Status.Text = "Current song not found"
       End If

   End Sub








Eleкtro

[Textbox] Show end part of text

Este snippet no se muy bien como explicarlo en pocas palabras, así que lo voy a explicar con imágenes...

Cuando excedemos el límite visible del textbox, la parte del final, es decir la parte derecha no se muestra:



Pues con este snippet omitiremos la parte de la izquierda, mostrando hasta la parte final del texto:



Código (vbnet) [Seleccionar]
    Private Sub TextBox_TextChanged(sender As Object, e As EventArgs) _
    Handles TextBox1.TextChanged

        ' If the text reaches the writable box size then this shows the end part of the text.                                                         
        sender.Select(sender.TextLength, sender.TextLength)

    End Sub


Saludos!








z3nth10n

A ti te dejan doble postear? >:(
Muy buenos snippets :)

Interesados hablad por Discord.