Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Pascal: Delphi ListBox rivin väri

jjude [10.01.2012 18:12:44]

#

Pystyykö Delphissä (7) muuttamaan ListBoxin yksittäisen rivin väriä?
Siis joko taustan tai tekstin väriä?!?

User137 [10.01.2012 21:50:23]

#

Molemmat voi muuttaa. Ensin ListBox style = lbOwnerDrawFixed

Sitten alla olevaan tyyliin. Tuo muuttaa kaikki 'nämä punaisella' itemien taustat punaiseksi. Tekstin väri muuttuu font.color:lla.

onDrawItem event:

procedure TForm1.ListBox1DrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
  with listbox1.Canvas do begin
    brush.Style:=bsSolid;
    if listbox1.Items[index] = 'nämä punaisella' then
      brush.Color:=clRed
    else
      brush.Color:=listbox1.Color;
    pen.Color:=brush.Color;
    rectangle(rect);
    textout(rect.Left+1, rect.Top, listbox1.Items[Index]);
  end;
end;

ps. Index ei ole pascal:ssa varattu sana jota tarvitsee lihavoida. (Mod. siirsi tästä virinneen keskustelun muualle.)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta