Q&A

  • 스트링그리드
안녕하세요.
저는 스트링 그리드를 이용하여 데이타베이스에서 읽어온 자료를 화면에 출력하고져 합니다.
우선 필요한 기능은
1.특정한 셀의 color 를 바꿀 수 있어야 합니다.
2.클릭 이벤트에서 그 셀의 레코드 값을 읽어 불러올 수 있어야 합니다.

1번에서
먼저 데이타베이스에서 불러온 값들을 읽어가며 Cell 에 값을 뿌려주는데
이때 레코드 값에 따라 cell 의 color 가 달라져야 합니다.
이것도 ondrawcell 인가 하는 이벤트에서 처리를 해야하나요?
저는 화면이 열릴때 레코드를 읽어서 값을 뿌리고져 합니다.
ondrawcell 이벤트가 언제 실행되는지 잘 모르겠군요?
그리고 그 이벤트에 코딩을 하고 실행했더니 루프가 도는것 같기도 하고....
혹시 더 좋은 freeware 아니면 좀 싼 grid  가 있으면 소개해주셔도 좋고...^^

2번에서는
그 셀에 레코드 값만 뿌려주는 것이 아니라 그 레코드의 키 값을 저장하고 싶은데(물론 화면에는 보이지 않게..)
그것도 가능한지요?
그래서 그 셀을 클릭하면 셀이 가지고 있는 키값으로 데이타베이스에서 값을 불러와 화면에 뿌려주고져 합니다.

초보인지라 두서없는 질문이었습니다.
하지만 꼭 답변부탁드립니다.
감사합니다.
1  COMMENTS
  • Profile
    뚜까 2005.08.12 22:29


    간단한 예제입니다. 참고하세요.. 먼저 1번은... 스트링그리드 ondrawcell 에서 원하는 열,행의 셀을 아래와 같이 하면 색깔이 지정됩니다.

      if (ARow = 4) and  (ACol = 3) then
      begin
        with stringgrid1.Canvas do
        begin
          Brush.Style := bsSolid;
          Brush.Color := clSkyBlue;
          Rectangle( Rect );
          Font.Color := clBlack;
          TextOut( Rect.Left+3, Rect.Top+3, stringgrid1.Cells[ Acol, Arow ] );
        end;
      end;

    그리고 두번째는 onselectedcell 이벤트에서.
    임의의 변수 := StringGrid1.Cells[ACol, ARow]; 로 하면 변수에 해당 셀 내용을 담을수 있습니다.
    이걸로 키를 해서 디비에서 쿼리 날릴때 where 조건절에 넣으면 되겠지요...

    도움이 되셨길...