Densyy Posted December 17, 2011 Report Share Posted December 17, 2011 Bom pessoal estou criando um chat já esta basicamente prontoPorém eu quero que quando o cliente envie uma mensagem ao servidorapareça no text1 dos dois o texto da cor verdee quando o servidor enviar uma mensagem ao clienteapareça no text1 dos dois o texto azulJá tentei fazer isso porem ele troca a cor dos textos do servidor e do cliente e torna todos com a mesma corvou mostrar melhor como eu fiz aquiRecebendo os dadosPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)Dim STR As StringWinsock1.GetData STR, vbString, bytesTotalText1.Text = Text1.Text & STR & vbNewLineEnd SubEnviando os dadosPrivate Sub CommandButton3_Click()If TextBox5.Text = "" ThenElseWinsock1.SendData apelido & ": " & TextBox5.TextText1.Text = Text1.Text & apelido & ": " & TextBox5.Text & vbNewLineEnd IfTextBox5.Text = ""End SubSe alguém poder me ajudar Ficarei Grato Quote Link to comment Share on other sites More sharing options...
0 Matheus-vb6 Posted December 18, 2011 Report Share Posted December 18, 2011 Boa noitetente usar o componente RichText... ele permite controle de cores individualCaso tenha dificuldades com ele poste aquiAbraços Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted December 19, 2011 Author Report Share Posted December 19, 2011 (edited) Eae kara vlw pela ajudavi aqui que se usa a propriedade .SelColorporem n estou sabendo usarjá vi um monte de tutoriais mais n deu certoo que eu queria é algo mais ou menos assimWinsock1.SendData (Texto) & (alguma coisa que defina ele de outra cor)Winsock1.GetData (Texto) & (alguma coisa que defina ele de outra cor)Não existe alguma propriedade que possa ser enviada por winsock e chegue ao outro lado normalmente?e agora estou com outra duvidaPreciso que quando eu aperte a tecla ENTERa mensagem seja enviada normalmente porem isso n acontece quando eu aperto a tecla ENTER automaticamente é selecionado o botão ENVIARsendo assim necessário apertar duas vezes a tecla ENTERSe poder me ajudarFicarei muito grato Edited December 19, 2011 by Densyy Quote Link to comment Share on other sites More sharing options...
0 Danleonhart Posted December 19, 2011 Report Share Posted December 19, 2011 Em relação a enviar a mensagem ao pressionar a tecla "ENTER", basta configurar o código no evento KeyPress da TextBox...sabendo que a tecla "ENTER" é equivalente a ao número inteiro "13" no padrão ASCII, use a variável "KeyAscii" para chamar o evento:Private Sub txtMsg_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 13 "Coloque o quê você quer que seja executado..." End Select End Sub Quanto ao RichTextBox vou dá uma olhada no que tenho de informações... Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted December 19, 2011 Author Report Share Posted December 19, 2011 ai kara no meu caso o codigo q você passou ficou assimPrivate Sub TextBox5_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 13CommandButton1_ClickEnd SelectEnd Subporem quando eu vou compilar da erronessa linhaPrivate Sub TextBox5_KeyPress(KeyAscii As Integer)e diz assim:Procedure declaration does not match description of event or procedure having the same nameTradução:Declaração do procedimento não corresponde à descrição do evento ou procedimento com o mesmo nomeNão sei o que fazer mais notei q o erro é somente nessa parte "(KeyAscii As Integer)"quando eu substituo por (KeyAscii As MSForms.ReturnInteger)n da erro porém n cumpri n da certon tenho mais ideia do que fazer Quote Link to comment Share on other sites More sharing options...
0 Danleonhart Posted December 20, 2011 Report Share Posted December 20, 2011 Só pode dá erro...um evento dentro de outro evento... :blink: o correto seria você colocar todo o código que está no CommandButton, na linha onde eu citei no exemplo (coloque aqui...)...mas para ficar mais simples faça o seguinte:Private Sub txtMsg_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 13 CommandButton1.SetFocus SendKeys ("{ENTER}") End Select End Sub O script "SendKeys ("{ENTER}")" simula o clique do botão "ENTER"...MSN: dannleonhart@hotmail.com Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted December 20, 2011 Author Report Share Posted December 20, 2011 Kara n deu certocontinuou com o mesmo erroo erro ocorre nesta linhaPrivate Sub Textbox5_KeyPress(KeyAscii As Integer)o codigo esta assimPrivate Sub Textbox5_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 13 CommandButton1.SetFocus SendKeys ("{ENTER}")End SelectEnd SubTe add no MSN quando se costuma entrar? Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted December 20, 2011 Author Report Share Posted December 20, 2011 já Resolvi karaEu descobri o erroisso estava ocorrendo por q eu estava usando uma Textbox e não uma Textai estava ocorrendo esse problema vlw pela ajuda manoagora se poder me ajudar com o richtextbox com as mensagens coloridas agradeço muito Quote Link to comment Share on other sites More sharing options...
0 Danleonhart Posted December 22, 2011 Report Share Posted December 22, 2011 Densyy Cara, foi o melhor que pude fazer... :mellow: Estou corrigindo um projeto e passei uns três dias (mas não direto, claro :) ) bolando uma maneira...e com uma ajudinha de um amigo, fiz este exemplo...Projeto:http://www.4shared.com/zip/CxjHchEH/RichTextBox-Testes.html Espero que ajude em algo ! FUI ! Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted December 22, 2011 Author Report Share Posted December 22, 2011 Po kara vlw mesmoFicou perfeitoAgora vou dar uma estudada nele Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted December 22, 2011 Author Report Share Posted December 22, 2011 (edited) Kara deu tudo certinho aqui até a hora de enviar a mensagemCai na mesma duvidacomo eu enviaria por winsock ?dim pacotes As Stringpacote = Parametros_RTB Text1.Text, Cor, RichTextBox1, ApelidoWinsock1.SendData pacoteTentei de um bilhão de jeitos mais n consegui nadaacontece um erro na seguinte palavra = Parametros_RTB Text1.Text, Cor, RichTextBox1, ApelidoCopile Error:Expected: end of statement Edited December 22, 2011 by Densyy Quote Link to comment Share on other sites More sharing options...
0 Danleonhart Posted December 22, 2011 Report Share Posted December 22, 2011 Você tem de usar a Sub onde a mensagem está chegando...EX:Private Sub Wsk_DataArrival(ByVal bytesTotal As Long) Dim StrDados As String Wsk.GetData StrDados Parametros_RTB StrDados, vbRed, Rtb1 End Sub No exemplo coloquei para a mensagem que chegar ficar na cor vermelha Quote Link to comment Share on other sites More sharing options...
0 Densyy Posted December 22, 2011 Author Report Share Posted December 22, 2011 (edited) vou te mandar o projeto acho melhor ok?Ai você podera ver minha duvidaDownload?Ve se você consegue corrigir o erro Edited December 23, 2011 by Densyy Quote Link to comment Share on other sites More sharing options...
Question
Densyy
Bom pessoal estou criando um chat
já esta basicamente pronto
Porém eu quero que quando o cliente envie uma mensagem ao servidor
apareça no text1 dos dois o texto da cor verde
e quando o servidor enviar uma mensagem ao cliente
apareça no text1 dos dois o texto azul
Já tentei fazer isso porem ele troca a cor dos textos do servidor e do cliente e torna todos com a mesma cor
vou mostrar melhor como eu fiz aqui
Recebendo os dados
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim STR As String
Winsock1.GetData STR, vbString, bytesTotal
Text1.Text = Text1.Text & STR & vbNewLine
End Sub
Enviando os dados
Private Sub CommandButton3_Click()
If TextBox5.Text = "" Then
Else
Winsock1.SendData apelido & ": " & TextBox5.Text
Text1.Text = Text1.Text & apelido & ": " & TextBox5.Text & vbNewLine
End If
TextBox5.Text = ""
End Sub
Se alguém poder me ajudar
Ficarei Grato
Link to comment
Share on other sites
12 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.