StringGrid에서 0칼럼셀마다 체크박스를 어떤분이 올려주신 아래의 소스를 이용하여
넣었습니다.
그런데 레코드가 늘어나서 StringGrid에 스크롤바가 생기고 스크롤바를 위아래로
스크롤하면 체크박스의 Caption문자나 체크박스의 체크상태등이 마음대로 변하더군요..
스크롤이 안되면 문제없구요...
우찌 해결해야 하나요.. 아시는 분의 조언을 부탁드립니다.
StringGrid에 값을 추가하면서(RowCount를 늘리면서) CheckBox를 만들어 넣었죠
소스...-----------------------------------------
Row_Num := SG1.RowCount - 1;
SG1.Objects[0, Row_Num] := TCheckBox.Create(SG1);
with TCheckBox(SG1.Objects[0, Row_Num]) do
begin
OnKeyUp := CheckBoxKeyUp; // <- 체크 프로시져
OnMouseUp := CheckBoxMouseUp; // <- "
Parent := SG1;
BoundsRect := SG1.CellRect(0, Row_Num);
Width := SG1.ColWidths[0];
Height := SG1.RowHeights[0];
Caption := InttoStr(Row_Num);
Checked := False;
end;
------------------------------------------------------
> StringGrid에서 0칼럼셀마다 체크박스를 어떤분이 올려주신 아래의 소스를 이용하여
> 넣었습니다.
>
> 그런데 레코드가 늘어나서 StringGrid에 스크롤바가 생기고 스크롤바를 위아래로
> 스크롤하면 체크박스의 Caption문자나 체크박스의 체크상태등이 마음대로 변하더군요..
> 스크롤이 안되면 문제없구요...
>
> 우찌 해결해야 하나요.. 아시는 분의 조언을 부탁드립니다.
>
>
> StringGrid에 값을 추가하면서(RowCount를 늘리면서) CheckBox를 만들어 넣었죠
>
> 소스...-----------------------------------------
>
> Row_Num := SG1.RowCount - 1;
>
> SG1.Objects[0, Row_Num] := TCheckBox.Create(SG1);
> with TCheckBox(SG1.Objects[0, Row_Num]) do
> begin
> OnKeyUp := CheckBoxKeyUp; // <- 체크 프로시져
> OnMouseUp := CheckBoxMouseUp; // <- "
> Parent := SG1;
> BoundsRect := SG1.CellRect(0, Row_Num);
> Width := SG1.ColWidths[0];
> Height := SG1.RowHeights[0];
> Caption := InttoStr(Row_Num);
> Checked := False;
> end;
> ------------------------------------------------------
스크롤박스 위에 스트링그리드를 올려놓고 만들면되요..
스트링그리드를 스크롤 하는게 아니라 스크롤박스가 스크롤되게요.
사이즈를 잘 조절해야 합니다.
그런데 위에처럼 하시면 화면을 그릴때도 시간이 많이들고
별로 편하지 않더군요..
체크박스라는것이 멀티 셀렉트를 위해서 하는거라면 굳이 체크박스를
쓰는것보다는 그냥 스트링그리드에서 컨트롤,쉬프트키로 선택하시게
구현하는것이 좋을듯 싶네요.