Tehnika Krstarice > Programiranje > Delphi - Farbanje ćelija u StringGrid-u

Delphi - Farbanje ćelija u StringGrid-u

30.10.2000.

StringGrid sa ćelijama u boji ima veoma dobar izgled, a na taj način možete informisati o korisnika o važnosti određenog sadržaja u ćeliji. Da bi obojili određene ćelije koristićemo događaj "OnDrawCell". U sledećem kodu prikazaćemo vam kako da obojite pozadinu ćelija u crvenu boju. Pozadina druge kolone ćelija će biti obojena u zelenu boju.

procedure TForm1.StringGrid1DrawCell(Sender: 
      TObject; ACol, ARow: Integer; 
      Rect: TRect; State: TGridDrawState); 

Const         //ovde definišete boju. Naravno možete ostaviti
                 //i default boje. 
      clPaleGreen = TColor($CCFFCC); 
      clPaleRed =   TColor($CCCCFF); 

begin 

//Ukoliko ćelija ima fokus obojićete je u drugu boju 
if (gdFocused in State) then begin     
      StringGrid1.Canvas.Brush.Color := clBlack; 
      StringGrid1.Canvas.Font.Color := clWhite; 
end 
else      //Ukoliko ćelija nema fokus možete koristiti 
           //sopstvene boje 

      If ACol = 2      //druga kolona će biti obojena u
                            //zeleno
               then StringGrid1.Canvas.Brush.color := clPaleGreen 
               else StringGrid1.canvas.brush.Color := clPaleRed; 

//Sada bojimo ćelije, ali samo, ukoliko ćelija 
//nije naslovna - Row/Column 

If (ACol > 0) and (ARow>0) then 
      begin 
            //Painting the Background 
            StringGrid1.canvas.fillRect(Rect); 

            //Bojimo tekst. Ovde možete 
            //koristiti i poravnavanje
            StringGrid1.canvas.TextOut(Rect.Left,
            Rect.Top,StringGrid1.Cells[ACol,ARow]);
      end;
end;

Ukoliko želite da obojite vaše ćelije u zavisnosti od vrednosti u ćelijama možete zameniti prethodne 3 linije (if Acol = 2 ......), sa sledećim:

     if StringGrid1.Cells[ACol,ARow] = 'highlight it' 
          then StringGrid1.Canvas.Brush.color := clPalered 
          else StringGrid1.canvas.brush.Color := clwhite; 

Preporučite ovaj članak

Članak još uvek nije ocenjen.