03/06/07 9:22
Roberto VB
Salve, sto lavorando alla mia chat da un po' di tempo, ora però ho trovato un problema
Con questo codice ogni volta che scrivo un messaggio, l'altro utente riceve in una textbox un messaggio avvisandolo che sto scrivendo.
Il problema sta nel fatto che il codice si trova nell'evento change della textbox e quindi si verifica ogni volta che digito un carattere, di conseguenza se scrivo velocemente Data non è più "Client sta scrivendo un messaggio", ma "Client sta scrivendo un messaggio""Client sta scrivendo un messaggio""Client sta scrivendo un messaggio""Client sta scrivendo un messaggio" . per cui quando si verifica DataArrival non esegue:
visto che Data non è più "Client sta scrivendo un messaggio"
E' un pochino complicato da spiegare spero che abbiate capito!! In caso contrario ditemelo!!
'Se txtInvia contiene almeno un carattere allora invia il messaggio If txtInvia.SelStart > 0 Then Data = "Client sta scrivendo un messaggio" TCP.SendData Data 'Altrimenti non invia nulla Else Data = " " TCP.SendData Data End If
Con questo codice ogni volta che scrivo un messaggio, l'altro utente riceve in una textbox un messaggio avvisandolo che sto scrivendo.
Il problema sta nel fatto che il codice si trova nell'evento change della textbox e quindi si verifica ogni volta che digito un carattere, di conseguenza se scrivo velocemente Data non è più "Client sta scrivendo un messaggio", ma "Client sta scrivendo un messaggio""Client sta scrivendo un messaggio""Client sta scrivendo un messaggio""Client sta scrivendo un messaggio" . per cui quando si verifica DataArrival non esegue:
If Data = " " Then txtStato.Text = "": Exit Sub If Data = "Client sta scrivendo un messaggio" Then txtStato.Text = "Client sta scrivendo un messaggio" Exit Sub End If
visto che Data non è più "Client sta scrivendo un messaggio"
Dim Data As String TCP.GetData Data If Data = " " Then txtStato.Text = "": Exit Sub If Data = "Client sta scrivendo un messaggio" Then txtStato.Text = "Client sta scrivendo un messaggio" Exit Sub End If If Data = "Hai ricevuto un trillo!" Then Beep lblStato.Caption = "In arrivo " & bytesTotal & "Bytes" txtChat.Text = txtChat.Text & " Remoto> " & Data & vbCrLf txtChat.SelStart = Len(txtChat.Text) txtStato.Text = ""
E' un pochino complicato da spiegare spero che abbiate capito!! In caso contrario ditemelo!!
aaa