Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    36

    [VB.net] passaggio variabili da modulo a oggetto su form.

    CHiedo scusa all'admin e agli altri per il mio comportamento scorretto.
    E dire che sono informatico di professione da 15 anni..
    i miei errori in questo forum sono dovuti al fatto che, come potrete vedere,
    ho postato nel forum alle 3 del mattino circa... ero abbastanza "stremato".
    Il giorno si lavora... e il tempo per questo mio progetto ce l'ho solo dalle dieci di sera in poi
    Ciò non costituisce una scusa valida, me ne rendo conto, ma questo è stato.
    Chiedo ancora scusa.

    Per tornare a bomba al discorso chiuso, giustamente, dall'admin:
    ( era: passaggio variabili da ... )

    a oregon rispondo che.. No. è escluso che la variabile non sia valorizzata.
    Controllato svariate volte. Anche passando una stringa "PIPPO" al posto della variabile.

    a GRUMPY chiedo, se possibile, ancora un pò di attenzione al mio problema dato che effettivamente la sua mi sembra una strada percorribile.

    A TUTTI invece dico che la seguente SUB è una sub, trovata su web, e che sto modificando, che serve a gestire le stringhe inviate da un server irc.
    Ora: il form che si occupa di "chattare" può venir chiuso (dispose) ogni volta che l'utente vuole. Ho la necessità quindi di NON perdere la connessione al server, nel caso in cui il form venga chiuso....ed è per questo che ho il bisogno reale di tenere questa sub in un modulo!
    Gestirei la chiusura del form inviando un comando "/PART #nomecanale", ma preserverei aperta la connessione al server!


    Avevo evitato di postare il codice, sperando in un aiuto basato sull'intuito e sull'esperienza dei lettori, dato che mega sub è effettivamente una mega sub!
    BTW, questo è il codice.

    codice:
    Public Sub ConnectThread_()
            TextBox1.Text = ""
            TextBox1.Text = "LOGS:" & vbCrLf
            Label3.BackColor = Color.Red
            Label3.Text = "disconnesso"
    ConnectToServer:
            Dim ipHostInfo As System.Net.IPHostEntry
    1:      Try : ipHostInfo = System.Net.Dns.GetHostEntry(Server) : Catch : GoTo 1 : End Try
            Dim EP As New System.Net.IPEndPoint(ipHostInfo.AddressList(0), port)
            sock = New System.Net.Sockets.Socket(EP.Address.AddressFamily, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp)
            sock.Connect(Server, port)
    
            send("NICK " & nick)
            send("USER " & "FC IRC" & " 0 * :" & "FC IRC")
            'rtbChat.Text = "Connecting ... " & vbNewLine
    
    ServerLoggs:
            Try
                Do While sock.Connected = True
    
    
                    Dim data(4096) As Byte
                    sock.Receive(data, 4096, SocketFlags.None)
                    Dim mail As String = System.Text.ASCIIEncoding.UTF8.GetString(data)
                    TextBox1.Text = TextBox1.Text & Hour(Now) & ":" & Minute(Now) & "." & Second(Now) & "-->" & mail & vbCrLf
                    If mail.Contains(" ") Then
                        If mail.Substring(mail.IndexOf(" ") + 1, 7) = "PRIVMSG" Then
    
                            If mail.Contains("#") Then
                                Dim senderr As String = mail.Remove(0, 1)
                                senderr = senderr.Split("!")(0)
                                Dim channel_ As String = mail.Remove(0, mail.IndexOf("PRIVMSG")).Replace("PRIVMSG", "").Replace(" ", "").Split(":")(0)
                                Dim SentText As String = mail.Remove(0, mail.IndexOf("#")).Remove(0, channel_.Length + 2)
                                'rtbChat.Text &= "[" & Now.ToLongTimeString & "] <" & senderr & "> : " & SentText
                            Else
                                'Dim channel_ As String = mail.Remove(0, mail.IndexOf("PRIVMSG")).Replace("PRIVMSG", "").Replace(" ", "").Split(":")(0)
                                'Dim SentText As String = mail.Remove(0, mail.IndexOf("#")).Remove(0, channel_.Length + 2)
                                Dim pollo As New FRM_QUERY
                                pollo.TXT_LEGGI.Text = pollo.TXT_LEGGI.Text & "oooooo" & vbCrLf
                                pollo.Visible = True
                            End If
                        ElseIf mail.Contains("PING") Then
                            Dim pserv As String = mail.Substring(mail.IndexOf(":"), mail.Length - mail.IndexOf(":"))
                            pserv = pserv.TrimEnd(Chr(0))
                            mail = ("PING from " & pserv).Insert(11, " ") & ("PONG to " & pserv).Insert(9, " ")
                            send("PONG " & pserv)
                        ElseIf mail.ToLower.Contains("already in use") Then
                            nick &= "_"
                            send("NICK " & nick)
                            Threading.Thread.Sleep(500)
                            send("USER " & "SMTest" & " 0 * :" & "SMTest")
                            Threading.Thread.Sleep(500)
                            'rtbChat.Text &= "Nick name already in use , using alternative nick name" & vbNewLine
                        ElseIf mail.Contains("You have not registered") Then
                            sock.Disconnect(False)
                            sock.Close()
                            GoTo ConnectToServer
                        ElseIf mail.ToLower.Contains("ix") Then
                            send("JOIN " & channel)
    
                        ElseIf mail.Contains("353") Then
                            LButenti.Items.Clear()
                            Dim lines() As String = mail.Split(vbNewLine)
                            For Each line In lines
                                If line.ToLower.Contains(" 353") Then
                                    Dim channel__ As String = mail.Remove(0, mail.IndexOf("#")).Split(":")(0)
                                    onlinemembers = line.Remove(0, line.IndexOf("#")).Remove(0, channel__.Length).Split(" ")
                                    For Each member In onlinemembers
                                        LButenti.Items.Add(member.ToString)
                                    Next
                                End If
                            Next
                            Label3.BackColor = Color.GreenYellow
                            Label3.Text = "CONNESSO"
                        ElseIf mail.Contains("JOIN :#") Then
                            Threading.Thread.Sleep(300)
                            send("NAMES " & channel)
                        ElseIf mail.Contains("PART #") Or mail.Contains("QUIT") Then
                            Threading.Thread.Sleep(300)
                            send("NAMES " & channel)
                        ElseIf mail.Contains("KICK " & channel) Then
                            Dim AssKicker = mail.Remove(0, 1).Split("!")(0)
                            Dim Reason = mail.Remove(0, 1).Remove(0, mail.IndexOf("#") + 10).Split(":")(1)
                            Dim kickedasshole = mail.Remove(0, 1).Remove(0, mail.IndexOf("#") + 11).Split(":")(0)
                            If kickedasshole.ToLower.ToString.Trim() = nick.ToLower Then
                                Dim kicked As Boolean
                                kicked = True
                                sock.Disconnect(False)
                                sock.Close()
                                Exit Sub
                            Else
                                send("NAMES " & channel)
                            End If
                        ElseIf mail.Contains("MODE " & channel) Then
                            mail = mail & " "
                            Dim WhoSetMode As String = mail.Remove(0, 1).Split("!")(0)
                            Dim WhoIsLucky As String = mail.Split(" ")(4)
                            Dim WhatHeGot As String = mail.Split(" ")(3)
                            'rtbChat.Text &= WhoSetMode & " Sets Mode " & WhatHeGot & " On " & channel & " & WhoIsLucky & vbNewLine"
                            send("NAMES " & channel)
                        ElseIf mail.Contains(channel & " :Cannot join channel (+b)") Then
                            sock.Disconnect(False)
                            sock.Close()
                            Exit Sub
                        End If
                    End If
                Loop
            Catch ex As Exception
                MsgBox(ex.Message, , "MODULO 2: NON GESTITO")
            End Try
        End Sub
    come dicevo, questa ub stava in un modulo na, per farla funzionare l'ho dovuta incollare direttamente nel form.
    il problema del passaggio di variabili a un form esterno
    è relativo alla parte di codice in cui ricevo una stringa dal server
    e ci lavoro sopra per avere una lista di nick.
    codice:
      ElseIf mail.Contains("353") Then
                            LButenti.Items.Clear()
                            Dim lines() As String = mail.Split(vbNewLine)
                            For Each line In lines
                                If line.ToLower.Contains(" 353") Then
                                    Dim channel__ As String = mail.Remove(0, mail.IndexOf("#")).Split(":")(0)
                                    onlinemembers = line.Remove(0, line.IndexOf("#")).Remove(0, channel__.Length).Split(" ")
                                    For Each member In onlinemembers
                                        LButenti.Items.Add(member.ToString)
                                    Next
                                End If
                            Next
                            Label3.BackColor = Color.GreenYellow
                            Label3.Text = "CONNESSO"
    ECCO.
    Se incollo la sub nel form
    la riga LButenti.Items.Add(member.ToString) funziona correttamente.
    Se incollo la sub in un modulo , la stessa riga frmdestinazione.LButenti.Items.Add(member.ToString ) NON FUNZIONA.
    Viene processata senza errori, ma totalmente ignorata!

    Spero di aver fatto tutto correttamente, questa volta.


    Grazie a tutti per l'attenzione
    e grazie anche a chi precedentemente mi ha risposto, aiutandomi in altri thread, senza ricevere risposta

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: [VB.net] passaggio variabili da modulo a oggetto su form.

    Ma dove è dichiarata questa

    onlinemembers

    ?

    Cosa è?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.