23. juli 2004 - 19:51Der er
41 kommentarer og 2 løsninger
Function "Tilføj text til chat"
Jeg har lavet denne funktion for at gøre det nemmere at tilføje meddelelser i min RichTextBox "txtChat" Public Function Chat(Index As String, Color As String) With frmMain.txtChat .SelColor = Color .Text = frmMain.txtChat.Text & vbCrLf & "[" & Time & "] " & Index End With End Function
Her skal den for eks. fortælle brugeren at han er logget på med blå tekst. Chat("Logged on the chat", vbBlue)
Det virker ikke. Når jeg vil kompilere programmet fortæller kompileren mig at den forventede = efter Chat(blabla,blabla) boxen... Hvad er der galt?
Public Function Chat(Index As String, Color As String) With frmMain.txtChat .SelColor = Color .Text = frmMain.txtChat.Text & vbCrLf & "[" & Time & "] " & Index End With Chat = frmMain.txtChat.Text End Function
tmp = Chat("Logged on the chat", vbBlue)
eller:
frmMain.txtChat.Text = Chat("Logged on the chat", vbBlue)
Jamen, grunden til at jeg har lavet funktionen er for at gøre koden mindre... jeg har ca. 30-40 steder hvor der står frmMain.txtChat.Text & vbCrLf & "[" & Time & "] " & Index og så tænkte jeg at det ville være smartere bare at kunne skrive Chat("Tekst","vbFarve")
For eks. virker den her log fint som jeg osse selv har lavet.. Public Function AddToLog(Index As String) Open App.Path & "\Logfile.log" For Append As #1 Print #1, "[" & Now & "] " & Index Close #1 End Function
Synes godt om
Slettet bruger
23. juli 2004 - 20:05#5
Når du laver en function skal du, som thesurfer skriver, returnere noget i en variabel, hvis du har en funktion som ikke skal returnere noget skal du lave den til en sub, eks:
Public Sub Chat(Index As String, Color As String) With frmMain.txtChat .SelColor = Color .Text = frmMain.txtChat.Text & vbCrLf & "[" & Time & "] " & Index End With End Sub
Jamen jeg kan stadig ikke nøjes med Chat("Chats", "vbBlue") hvis jeg har lavet funktionen om til en sub... Jeg fatter det virkelig ikke, for det her virker fint... Public Function AddToLog(Index As String) Open App.Path & "\Logfile.log" For Append As #1 Print #1, "[" & Now & "] " & Index Close #1 End Function Private Sub Form_Load() AddToLog ("Log opened") End Sub
Og hvis det gør nogen forskel, så ligger 'Chat("Logged on the chat", "vbBlue")' osse i en 'Sub Form_Load()'
Synes godt om
Slettet bruger
23. juli 2004 - 22:05#8
Hvad mener du med at du ikke kan nøjes med? Virker det slet ikke ?
Color skal ikke være en string men en integer: Public Sub Chat(Index As String, Color As Integer) With frmMain.txtChat .SelColor = Color .Text = frmMain.txtChat.Text & vbCrLf & "[" & Time & "] " & Index End With End Sub
Måske at det var nemmere at få til at virke hvis jeg bare for eks. sender Blue, og så jeg lave If Then vbBlue osv...?
Synes godt om
Slettet bruger
23. juli 2004 - 22:26#25
Prøv med en Variant, hvis det ikke virker så flikker jeg lige noget sammen til dig.
Synes godt om
Slettet bruger
23. juli 2004 - 22:28#26
Alternativ forslag:
Public Sub Chat(Index As String, Color As String)
Select Case Color case "blå": .frmMain.txtChat.SelColor = vbBlue case "rød": .frmMain.txtChat.SelColor = vbRed case "grøn": .frmMain.txtChat.SelColor = vbGreen o. s. v. end select
With frmMain.txtChat .Text = frmMain.txtChat.Text & vbCrLf & "[" & Time & "] " & Index End With End Sub
Virker heller ikke... Den laver stadig sort tekst.. Public Sub Chat(Index As String, Color As String)
Select Case Color Case "blå" frmMain.txtChat.SelColor = vbBlue Case "rød" frmMain.txtChat.SelColor = vbRed Case "grøn" frmMain.txtChat.SelColor = vbGreen End Select
With frmMain.txtChat .Text = frmMain.txtChat.Text & vbCrLf & "[" & Time & "] " & Index End With End Sub
Private Sub cmdSend_Click() Chat "Logged on to the chat", "blå" End Sub
Det her virker i min Form_Load With txtChat .Text = "" .SelColor = vbRed .SelText = "Rich" .SelColor = vbBlue .SelText = "Text" .SelColor = vbGreen .SelText = "Box" .SelColor = vbBlack End With
Synes godt om
Slettet bruger
23. juli 2004 - 22:35#32
txtChat er det en textbox eller en anden type kontrol du har?
Ahh... Alternativet virker! Der skal bare ikke stå "frmMain." da jeg har smidt koden ind i selv formen...! :-) Jeg takker dig tusinde gange for hjælpen!
Svar! :D
Synes godt om
Slettet bruger
23. juli 2004 - 22:44#35
Jeps, men jeg vil for en god ordens skyld lige sige at thesurfer også fortjener nogle point da det var ham der påpegede at en function skulle puttes i en variabel, så jeg synes du skal dele pointene mellem os :-)
i mellem tiden, kan du så svare mig på hvorfor al tekst bliver den farve når jeg bruger scriptet? Det var kun meningen at den linie skulle blive det.. :-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.