![]() |
Schriftfarben in Multiuser-Chat
Ich hab eine Frage zu einem selbstgemachten Chat, und zwar: Wie kann ich ankommende Chat-Nachrichten in einer bestimmten Farbe anzeigen lassen, z.B. von User "Heinz" in grün, von User "Hans" in blau? Ich verwende einen Chat mit mehreren Clients und einem Server. Mein QT ist denke ich nicht nötig, oder? Wenn doch kann ich ihn ja später immer noch posten.
|
Re: Schriftfarben in Multiuser-Chat
die Frage ist, wie und wo Du die Namen der Chatteilnehmer ausgibst... nutzt Du ein Memo, oder eine Listbox, oder was anderes?! Es lässt sich nähmlich recht schwierig erklären, wie man die Farbe der Chatteilnehmer verändert, wenn ´wir nicht wissen welche Komponente Du nutzt.
gruss Evian |
Re: Schriftfarben in Multiuser-Chat
Am besten geht es mit einem RichEdit:
Delphi-Quellcode:
Von mir aus gesehen sehr einfach
case Benutzer of
0: RichEdit1.SelAttributes.Color := clBlack; 1: RichEdit1.SelAttributes.Color := clBlue; 2: RichEdit1.SelAttributes.Color := clRed; 3: RichEdit1.SelAttributes.Color := clGreen; end; RichEdit1.Lines.Add(ErhaltenerText); |
Re: Schriftfarben in Multiuser-Chat
Liste der Anhänge anzeigen (Anzahl: 1)
Ich meine, wie ich überprüfen kann, von wem die Nachrichten kommen und dann deren Nachrichten in einer bestimmten Farbe ausgeben.
z.b. Das Chatfenster ist im Anhang, um es besser nachzuvollziehen. |
Re: Schriftfarben in Multiuser-Chat
Hi!
Du weißt doch, von wem die Nachrichten kommen, oder? Du, oder dein Programm, schreiben es doch davor. Und dann die Case-Abfrage, wie oben (geht aber glaub ich nicht mir Strings). Ciao fkerber |
Re: Schriftfarben in Multiuser-Chat
Wenn du mit Server- und ClientSocket arbeitest, dann kannst du folgendes verwenden:
Delphi-Quellcode:
Falls du es so wie in deiner Grafik machen willst, musst du vorher noch nach bestimmten Kommandos überprüfen, und für die speziellen Meldungen (Angemeldet, Abgemeldet) andere Farben verwenden.
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket); var i: Integer; begin //Socket ist das Socket des aktuellen Clients //ActiveConnections ist die Anzahl laufender Verbindungen //Connections enthält alle Sockets der offenen Verbindungen for i := 1 to ServerSocket1.Socket.ActiveConnections do begin //Wir gehen alle Sockets durch, falls wir das richtige gefunden haben, setzen wir die Farbe if Socket.Handle = ServerSocket1.Socket.Connections[i-1].Handle then begin RichEdit1.SelAttributes.Color := Farben[i]; break; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz