|
| |

Visual-Basic Einsteiger| Richtextbox Farben ändern (selcolor reicht nicht) | |  | | Autor: MagicOizo | | Datum: 15.02.02 11:34 |
| Also folgene Situation:
Ich habe ein Chatprogamm für LAN und Internet geschrieben, dass über die IP (bzw bei Winsservern mit PC-Name) funktioniert.
Alles kein problem funktioniert auch. Das ganze ist auf einem Server client connection aufgebaut.
Wenn nachrichten geschrieben werden, werden sie über den Server auf alle clients über die winsock verteilt und werden am client über eine richtextbox angezeigt!
Jetzt kommt das problem:
Jeder normale Chat bietet die möglichkeit, die Farbe des Chatternamens zu ändern.
Kein Problem dachte ich und habe einfach in dem Text einfach nach den Namen gesucht über INSTR geht das ja auch ganz einfach ... Dann habe ich den namen über selstart und sellenght markiert und über selcolor die farbe verändern lassen.
Das soll mit jedem Chaternamen gemacht werden, der angemeldet ist und danach der Cursor auch wieder ans ende der rtb springen, damit man auch immer die neuste Meldung lesen kann.
so sieht der code der Formatierungsfunktion aus:
chater enthält die anzahl der chater im raum
farbscala ist ein array und enthält mögliche farbcodes
chatpartner ist ein array und erhält den namen der chater im raum
Private Function Text_Format(alles As Boolean)
Dim Search As String, Where As Integer
rtbChat.SelStart = 0
rtbChat.SelLength = Len(rtbChat.Text)
rtbChat.SelColor = Farbscala(1)
If alles = False Then
rtbChat.SelStart = Len(rtbChat.Text)
Exit Function
End If
For I = 1 To Chater
Search = ChatPartner(I) & ":"
Where = InStr(rtbChat.Text, Search)
Do Until Where = 0
rtbChat.SelStart = Where - 1
rtbChat.SelLength = Len(Search)
rtbChat.SelColor = Farbscala(ChaterFarbe(I))
Where = InStr(Where + Len(Search), rtbChat.Text, Search)
Loop
Next I
rtbChat.SelStart = Len(rtbChat.Text)
End Function
Das funktioniert auch wunderbar, allerdings wird das scheiße langsam, sobalt entweder mehr leute oder mehr text im Chatraum ist.
Bei sehr langem text dauert das so lange, das der text richtig flimert und man erst lesen kann wenn alles durchgeführt wurde. Blöd nur wenn dann sehr viel geschrieben wird, dann kann man nähmlich nach ner zeit gar nichts mehr lesen.
Ich weiß auch schon woran es liegt:
Sobalt man an eine rtb etwas Anhängt wird die gesamte textfarbe so geändert wie die textfarbe der ersten stelle ist. Es sei denn man fügt händisch etwas in die rtb ein, also nicht programmgesteuert (rtb=rtb & neuertext).
Jedes programmgesteuerte textanfügen führt also dazu, dass die rtb die einzelnen farbeinstellungen vergisst ...
Ich habe schon ne ganze menge versucht, aber es geht einfach nicht, dass die rtb ihre informationen behält und nur den neuesten anhang ändert.
Falls jemand ne idee hat, oder schon mal das problem lösen konnte, dem währe ich sehr dankbar, sonst muss ich leider auf die se schöne funktion verzichten. Mit eigenen steuerelementen habe ich nämlich keine erfahrung ...
Bye und danke für die hilfe,
Magic Oizo |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevOutBar 4.0 
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere Infos
|
| |
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|