Q&A

  • Query로 데이터를 불러온 DBGrid에 checkbox를 넣고싶어요.
DBGrid에 checkbox를 넣고 싶은데 잘안됩니다.

Query로 Data를 불러와서 DBGrid에 연결했구요.여기에 checkbox를 넣어서,

바로 update를 하고 싶은데 어께 해야 하나요...

고수님들의 고견을 기다립니다.. 급해요...

1  COMMENTS
  • Profile
    김하늘 2000.09.07 19:47
    API를 이용하여 체크박스처럼 보이게...



    Dbgrid의 DrawColumnCell이벤트에서

    인자중 Column 이 있으니 그걸루....

    Column.Field.FieldName = '해당필드'

    Column.Field = 해당필드 이런식으로



    if Column.Field.FieldName = '해당필드' Then Begin

    FillRect를 이용하여 해당 컬럼을 클리어한후;

    DrawEdge 를 이용하여 박스처리를 하지요;

    if Column.Field.AsString = '1' Then Begin

    해당필드의 값이 '1' 일때만 특수문자를 이용하여 V(체크) 표시를 만듭니다.

    DrawText 를 이용해서요....

    여기서 주의 하실점은 체크표시가 선에 붙어있는 느낌이 들므로

    해당이벤트에서 TRect형으로 변수하나 달고요

    이벤트에서 넘어온 Rect를 거기에 대입 변수.top := 변수.top + 1;

    을 조정해주면 됩니다. 코딩라인은 7~8 줄 나올겁니다.

    End;

    End;



    마우스 더블클릭이벤트에서

    해당 필드일드의 내용을 '0' 일때는 '1'로 '1' 때는 '0'으로 고치구요

    한 4줄 정도 나옵니다...



    onColEnter이벤트 해당칼럼일때는 Readonly를 true로 아닐대는 false 로 돌리구요.

    순수 마우스조작으로 값을 고치기 위하여

    1줄 정도 나옵니다.

    Dbgrid.ReadOnly := (DbGrid.SelectedField.FieldName = '해당필드');



    dbgrid.Options 프로퍼터에 dgAllshowEditor 인가여 게는 false로 두고요...





    coolling wrote:

    > DBGrid에 checkbox를 넣고 싶은데 잘안됩니다.

    > Query로 Data를 불러와서 DBGrid에 연결했구요.여기에 checkbox를 넣어서,

    > 바로 update를 하고 싶은데 어께 해야 하나요...

    > 고수님들의 고견을 기다립니다.. 급해요...