아래처럼 그리드의 비율에따른 그래프가 바로 옆필드에 표시되고
그 표시된 그래프가 비율에 따라서 깜박이게 하고 싶습니다..
경험이 부족해서.. 자주 도움을 청하게 되네요...
[예]
부서 최초보유 소모 현보유 비율 그래프
-------------------------------------------------------------
인사과 110 60 50 40% 노란색 그래프
홍보과 210 20 190 90% 파랜색 그래프
관리과 310 300 10 10% 노란색 그래프
이런식으로 바로 옆필드에 .. 그래프로 비율에 따른 색상으로 표시를
했는데.. 비율값이 50% 이하일때 그래프 색은 노란색이거든요..
이것을 깜박이게 할수는 없을까요?..... 경고음도 들어가면 좋구요..
dbgird 그래프 표시예문)
----------------------------
procedure TForm2.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
tmpRect : TRect;
begin
with TDBGrid(Sender).Canvas do
begin
Brush.Style := bsSolid;
Brush.Color := clWindow;
FillRect(Rect);
tmpRect := Rect;
if (Column.FieldName = 'Qty') then
begin
inc(tmpRect.Top,2);
dec(tmpRect.Bottom,2);
if column.Field.AsInteger < 3 then
begin
Brush.Color := clBlue;
tmpRect.Right := Rect.Left + round((Rect.Right - Rect.Left) * 0.3);
end
else if column.Field.AsInteger < 5 then
begin
Brush.Color := clYellow;
tmpRect.Right := Rect.Left + round((Rect.Right - Rect.Left) * 0.5);
end
else
begin
Brush.Color := clRed;
tmpRect.Right := Rect.Left + round((Rect.Right - Rect.Left) * 0.8);
end;
end;
if (gdFocused in State) or (gdSelected in State) then begin
Brush.Color := clHighlight;
Font.Color := clHighlightText;
end;
FillRect(tmpRect);
if (Column.FieldName = 'Qty') then
begin
Brush.Color := clBlack;
FrameRect(tmpRect);
end
else
begin
TextOut(Rect.Left+2,Rect.Top+2,Column.Field.AsString);
end;
Brush.Style := bsSolid;
Brush.Color := clWindow;
end;
end;