Neuer Eintrag in der Listbox farbig darstellen
lima-city → Forum → Programmiersprachen → Delphi & Pascal
-
Hallo,
Ich m?chte gerne f?r meinen Lan Messenger etwas mit einer Listbox machen, und zwar folgendes:
Ich m?chte wenn einer mit der DXPlay (Delphi X) den Raum betritt, das ein neuer Text in der Listbox steht, dieser soll dann gr?n geschrieben sein. Dann w?rde ich noch gerne haben, dass der Autoscroll darin aktiviert ist. Vielen Dank f?r die Antworten. MFG. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Zur Farbsache:
Als erstes stell Style des TListBox- Objekts auf lbOwnerDrawFixed und erzeuge im Ereignisinspektor eine OnDrawItem- Procedure.
So was jetzt folgt soll nur ein Denkansto? sein da ich net weis was genau machen willst aber ich glaub es ist ersichtlich was ich mit dem Code bezwecke oder?
. procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var tmp:TListBox; begin tmp := TListBox(Control); tmp.Canvas.Brush.Color := clWhite; tmp.Canvas.FillRect(Rect); if tmp.Items.Strings[Index] = 'red' then tmp.Canvas.Font.Color := clRed else if tmp.Items.Strings[Index] = 'blue' then tmp.Canvas.Font.Color := clBlue else tmp.Canvas.Font.Color := clBlack; tmp.Canvas.TextOut(0,Rect.Top,tmp.Items.Strings[Index]); end; .
Zur Scrollsache:
Ich denk mal du meintest das so das der jeweils letzte Eintrag zu sehn ist? Das geht so ... in der Funktion/Procedure die in der ListBox nen Item added setz einfach am ende folgenden Code...
. ... if ListBox1.ItemIndex >= 0 then ListBox1.ItemIndex := ListBox1.Items.Count - 1; ... .
-
Hey vielen Dank, hat funktioniert!!!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage