노드(IP장비)들의 정보 및 상태정보를 DB로 가지고 있습니다..
창하나를 띄워서.. 바둑판 형식의 테이블에 각 셀에 노드이름을 보여주고~
노드의 상태를 그 셀에 색상을 주려 합니다.
주기적으로 그 상태를 저장하여.. 테이블을 업데이트 하여서..
각 노드의 상태를 보여주려는 기능을 구현 하려 하는데요..
저의 생각은 업데이트 할때마다 DB에서 select 해서 테이블을 다시 그려주고 싶은데요..
테이블 셀에 색상을 주려면 상태정보를 어디에 저장해두고.. 읽어와야 하는데..
DB query 한다음 정보를 메모리에 저장하고 draw이벤트에서 그려주도록 할 수 있을까요??
구현 방법이나 관련 콤포넌트에 대해서 조언 부탁드립니다..
질문이 많이 부족하네요..... ㅠㅠ
이해가시죠? 고수님들의 답변 기다립니다... ^^;
0 : 왼쪽 정렬, 1 : 가운데 정렬, 2 : 우측 정렬
1 ROW 그러니깐 Index 가 0 이져
여기는 타이틀이 출력되는 거라서 전부 가운데 정렬이구
각 Colum 마다 정렬이 틀려지는 구조입니다.
이걸 참조하시면 될꺼 같구여...
procedure Tf_IO07.sgViewDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
i_align : integer;
begin
case ARow of
0 : i_align := 1;
else begin
case acol of // 0 left 1 center 2 right
1 : i_align := 0;
0 : i_align := 1;
2..3 : i_align := 2;
else i_align := 0;
end;
end;
StringGrid_DrawCell(Sender, ACol, ARow, Rect, i_align);
end;
색상 지정은
if ARow = 8 then begin
sgView.canvas.brush.color := clSilver;
sgView.canvas.font.color := clBlack;
TStringGrid(Sender).RowHeights[8] := 10;
end else begin
sgView.canvas.brush.color := clWhite;
sgView.canvas.font.color := clBlack;
end;
sgView.canvas.fillRect(rect);
9 Row 에(Index 8)에 실버색을 칠해주는 예입니다.
지금 제가 하고 있는 프로젝트에서 걍 복사해서 붙이는거라서
직접 코딩으로 해주지 못해서 죄송하구여..
응용해보세요~~