조규춘님 말뜻은 알겠는데 스트링그리드에서 특정셀이 마이너스 값일때 빨간색을 집어넣을 레코드가 루프로 돌면서 200~300레코드쯤 됩니다..
공백셀일때는 건너뛰게끔하거나,공백셀일때는 인위적으로 0 값을 넣고 다음 코딩에서 이 셀이 0보다 작을때 빨간색을 집어 넣으려고 한다면 어떻게 코딩이 이루어 져야하는건지...아직 초보라 감이 잡히지 않네요...
try..except구문을 적용한다면 어디에 어떻게 적용시켜야 하느지....??한 번 시도해 봤는데 잘 안되네요..좀 좌주세요
아래는 제가 조금 수정한 소스입니다..
//셀의 값이 마이너스일때 색깔넣기
//m은 정수변수로 정의했고 마이너스값이 들어간 셀들은 유동적으로 200~300레코드 쯤됨
with tstringgrid(sender).canvas do
begin
if (col=5) and (row>=1) then
begin
if tstringgrid(sender).cells[col,row]<>' ' then
begin
m:=strtoint(tstringgrid(sender).cells[col,row]);
end;
if m<0 then
begin
font.color:=clred;
fillrect(rect);
textout(rect.right-stringgrid1.canvas.textwidth(cellstr),rect.top+2,cellstr);
end;
end;
end;//with
var
cellstr:String;
xpos, num:Integer;
xpos:= Rect.Left+2;
cellstr:= TStringGrid(Sender).Cells[col,row];
> with tstringgrid(sender).canvas do
> begin
if Row=0 then begin
xpos:= (Rect.Right div 2)- (TextWidth(cellstr) div 2);
end
else begin
> if col=5 then
> begin
num:= StrToIntDef(cellstr,0);
> cellstr:= FormatFloat('#,0',num ); //StrToInt-->StrToIntDef
> if num<0 then
> begin
> Font.color:=clred;
xpos:= Rect.Right-TextWidth(cellstr)-4;
> end;
> end;
> end;
FillRect(Rect);
Textout(xpos, rect.top+2, cellstr);
end;