AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListBox - Textfarbe eines Eintrags ÄNDERN

Ein Thema von julien · begonnen am 25. Jan 2007 · letzter Beitrag vom 25. Jan 2007
Antwort Antwort
julien

Registriert seit: 25. Jan 2007
8 Beiträge
 
Delphi 7 Personal
 
#1

ListBox - Textfarbe eines Eintrags ÄNDERN

  Alt 25. Jan 2007, 14:36
Hallo!
Ich habe mir einen Chat Programmiert, wo ich eine Benutzerliste habe und dort der Status angezeigt werden soll. der Server sendet "O", wenn ein Benutzer Online gekommen ist, "A", wenn ein Benutzer in Abwesenheit gegangen ist, und "T", wenn ein Benutzer gerade etwas eintippt. Nun möchte ich in der ListBox diese Stati durch eine Textfarbe kennzeichnen:
Online = clGreen
Abwesend = clRed
Tippt = clBlue
Das mit der Textfarbe beim Hinzufügen eines Eintrags hab ich hinbekommen, nur wie geht das mit dem Ändern?

MfG
  Mit Zitat antworten Zitat
Benutzerbild von p0w3r5tr34m3r
p0w3r5tr34m3r

Registriert seit: 18. Aug 2003
Ort: Monheim am Rhein
153 Beiträge
 
RAD-Studio 2009 Pro
 
#2

Re: ListBox - Textfarbe eines Eintrags ÄNDERN

  Alt 25. Jan 2007, 14:44
hi,

ich würde vorschlagen das du einen timer dafür einsetzt der, sagen wir alle 10s, die listbox neu malt (Repaint). In der OnDrawItem Procedure würde ich dann den text auslesen, einfärben und dann neu in den rect schreiben.

Wie gesagt, es ist nur ein Vorschlag, ob es das ist was du wünscht, weiß ich nicht

Mit freundlichen Grüßen
Florian Cülter
ich bin ein notorischer alles-klein-schreiber!

der 100. Beitrag nach 3 Jahren 25 Wochen und einem Tag
  Mit Zitat antworten Zitat
julien

Registriert seit: 25. Jan 2007
8 Beiträge
 
Delphi 7 Personal
 
#3

Re: ListBox - Textfarbe eines Eintrags ÄNDERN

  Alt 25. Jan 2007, 15:02
Danke erstmal für die schnelle Antwort! Das mit dem Timer ist zwar eine Lösung aber nicht so Optimal. Die Liste wird ja über den TCP/IP-Eventhandler aktualisiert. Es soll auch kein Flimmern etc. in der Liste entstehen (wie das ja bei der Timer-Lösung das Problem ist), weil das nervt . Außerdem gibt es noch das Problem, dass ich zwar die Farbe des Eintrags Ändern lassen kann aber die ListBox nicht vernünftig aktualisiert wird, sodass ich die ListBox erst außerhalb des Bildschirmbereichs schieben oder den Eintrag auswählen muss, damit die Textfarbe aktualisiert wird . Bei Repaint wird ja die ganze ListBox neu "gemalt", sodass wieder das Problem mit dem Flimmern ist.
Das währ echt nett, wenn mir jemand weiterhelfen könnte.

MfG
  Mit Zitat antworten Zitat
Benutzerbild von Light
Light

Registriert seit: 3. Feb 2006
Ort: Paderborn NRW
123 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: ListBox - Textfarbe eines Eintrags ÄNDERN

  Alt 25. Jan 2007, 16:33
Hi Julien,

also ich würde jetzt einfach mal tippen -
wenn du einfach immer nur dann die Liste (listbox) aktualisierst wenn jemand geht/dazukommt oder schreibt dann sind ja nicht so häufige Farbwechsel oder?
und dann könntest du doch immer wenn du was verändert hast die box neu zeichnen lassen oder anderweitig aktualisieren.

Kannst du jetzt eigentlich einen Eintrag verändern oder nicht (farblich) ??

Leuchtende Grüße

Stefan

alias Light
Stefan
  Mit Zitat antworten Zitat
julien

Registriert seit: 25. Jan 2007
8 Beiträge
 
Delphi 7 Personal
 
#5

Re: ListBox - Textfarbe eines Eintrags ÄNDERN

  Alt 25. Jan 2007, 16:37
Hi!
Ja, die idee hatte ich auch schon. Ich werds auf jeden Fall nachher mal austesten.

MfG
  Mit Zitat antworten Zitat
julien

Registriert seit: 25. Jan 2007
8 Beiträge
 
Delphi 7 Personal
 
#6

Re: ListBox - Textfarbe eines Eintrags ÄNDERN

  Alt 25. Jan 2007, 21:26
Okay, danke! Funktioniert bestens mit Repaint.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz