06-10-2013، 11:57 AM
سلام من می خواهم بنا بر شرطهایی که دارم ردیفهای استرینگ گرید را رنگی کنم ، کد زیر را نوشتم ولی جواب نمی ده .میخواهم که اگر مقدار موجود در ستون های اول یکی باشند آن ردیف ها یک رنگ باشند و برای مقدار بعدی از آرایه ای که تعریف کردم رنگ بعدی را بخونه
procedure TComparing_Objects_Frm.StringGrid10DrawCell(Sender: TObject;ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var I ,J: Integer;
Fval:String;
fcolor : array[0..5] of TColor;
begin
fcolor[0]:=clGreen;
fcolor[1]:=clGray;
fcolor[2]:=clPurple;
fcolor[3]:=clYellow;
fcolor[4]:=clMaroon;
fcolor[5]:=clOlive;
J:=0;
Fval:=StringGrid10.Cells[0,1] ;
for I :=2 to StringGrid10.RowCount do
begin
if StringGrid10.Cells[0,I]=Fval then
StringGrid10.Canvas.Brush.Color := fcolor[J]
else
begin
J:=J+1;
StringGrid10.Canvas.Brush.Color := fcolor[J] ;
Fval:=StringGrid34.Cells[0,I];
end;
StringGrid10.canvas.fillrect(rect);
StringGrid10.canvas.textrect(rect, I, 0, StringGrid10.cells[0,I])
end;
end;
اما اصلا جواب نمی ده ، میشه لطفا کمک کنید. کد نمونه ای که تو اینترنت هم هست کمکم نمی کنه.