여기 검색 해서 보니깐 거의 dbGrid에서의 checkbox 는 죽음이다라고 써 있더군요.
--+
일단 제가 왜 디비그리드에다가 체크 박스를 올려야 하는지 그 진상부터 말하고 싶군요.
한 폼이 있는데.. 디비그리드가 있고 어떠한 내용을 보여 주고 있습니다.
이 목록중 선택을 해서 거기의 키값을 읽어 다른 폼에 전달 시켜 주어야 하거든요.
그래서 생각한것이 디비그리드에 체크 박스를 올리는 것 이었고
일단은 디비그리드에 체크 박스를 올리는 것 까지는 성공을 하였습니다.
그런데 올려 놓고 보니깐 이넘이 체크가 되어 있는지 상태를 파악 해야 하는데...
어캐 연관 시켜야 할지 도저히 모르겠슴다..
일단 올린 소스는
if DataCol = 1 then
begin
myCheck := TCheckBox.Create(Self) ;
myCheck.Left := dbgBalList.Left + Rect.Left - 20 ;
myCheck.Width := 15 ;
myCheck.top := dbgBalList.Top + rect.top + 2 ;
myCheck.Color := clHighlightText ;
myCheck.Parent := Self ;
myCheck.OnClick := CheckBoxClick
end ;
이고 적용 이벤트는 DrawColumnCell이고 물론 여기에서 얻은 소스임다..
멋있게 나오더군요.. ^^
그냥 체크 박스 붙히고 하니깐 넘 이상해서 디비그리드에서 ADD Field해서 빈 필드 하나 만든 다음 체크 박스를 그 위에다가 위치만 옮겨 놓았죠...(그 필드랑 체크 박스의
연계는 하나도 없음 구냥 보기 좋으라고..)
위와 같이 만들면 레코드 수만큼 생기지만 그 많은 체크 박스가 어떻게 해당 레코드와
연계를 만들수 있는지 좀 알려 주세요...
동적으로 만든것이라 OnClick := CheckBoxClick; //CheckBoxClick는 내가 만든거
을 이용해서 하고 있슴다.
procedure CheckBoxClick(sender : TObject);
begin
// 요넘의 안에다가 잘 넣으면 될것 도 같은데..
// 요기서 체크박스와 해당 레코드가 잘 연계가 안되네영
end;