[ bojan21 @ 26.05.2007. 23:37 ] @
Pozdrav! Ja takodje radim seminarski, skoro sam pri kraju (a poceo sam juche :D), medjutim treba mi jedna stvar! Treba korisniku da prikazujem neki jednostavan log i recimo da u tom logu odredjene linije budu drugacije boje (npr. greske crvene, upozorenja plava ...). Da li neko zna gde mog naci neki prostu komponentu koja ima mogucnost MultiColor redova! Hvala unapred! ;)

P.S. Jel postoji nesto tako u JCL/JVCL paketu, poshto nisam uspeo da nadjem!
[ _deran_ @ 27.05.2007. 00:25 ] @
mmmm... TListBox? :)
[ viking13 @ 27.05.2007. 00:42 ] @
Listbox.

Podesiš mu style na lbOwnerDrawFixed.

A u OnDrawItem odradiš farbanje po svojoj želji.

Evo ti jednostavna primer koji farba tekst u svakoj trećoj liniji u zelenu, crvenu ili svetlo plavu.

Code:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with Control as TListBox do
  begin
    Canvas.FillRect(Rect);
    case Index mod 3 of
      0: Canvas.Font.Color := clGreen;
      1: Canvas.Font.Color := clRed;
      2: Canvas.Font.Color := clSkyBlue;
    end;
    Canvas.TextOut(Rect.Left + 2, Rect.Top, Items[Index]);
  end;
end;


Ti naravno ne gledaš koja je linija po redu, nego kakav je tip poruke.

Easy?
[ bojan21 @ 27.05.2007. 08:53 ] @
Hvala :D! Znao sam da moze preko OwnerDraw ali nikad sa tim nisam radio :D! Hvala jos jednom ;)!