|
스트링 그리드에 OnTopLeftChange란 이벤트가 있습니다.
스크롤 바로 움직이면 뜨는거죠..
여기서 화면 처리 해주면 될 듯 한데요. ^^
제가 스크롤에 따라 버튼 이동시키는 루틴을 붙여드리니 참고하시길..
void __fastcall TF_IOCheck::SG_IOTopLeftChanged(TObject *Sender)
{
//
// String Grid의 시작위치가 변했을때도 버튼 위치 이동 처리를 해야 함
int top = SG_IO->Top + (SG_IO->DefaultRowHeight+1) * (SG_IO->Row - SG_IO->TopRow+1);
B_On->Top = top;
B_Off->Top = top;
}
머리돌 님이 쓰신 글 :
: 스크롤바가 있을때 스크롤바를 움직임에 따라 자동적으로 채크박스의 caption을 row번호로 변경되도록 할려구 하는데 저의 실력으로 역부족 이네요. 도와주세요 ..
:
: 스트링그리드 row수 =301; 화면에 표시되는 row수는 10개정도;
: 3번째 col에 각각 checkbox를 삽입하고 caption을 row번호로 나타나도록 하려고 하는데
: 많은 어려움이 있습니다. 제발 도와주세요.
:
: [헤더]
: 도움주신 라다 님이 쓰신 글:
: : void __fastcall TForm1::BitBtn1Click(TObject *Sender)
: : {
: : TCheckBox *t = new TCheckBox(this);
: : StringGrid1->Objects[1][1] = t;
: : t->Parent = StringGrid1;
: : t->BoundsRect = StringGrid1->CellRect(1,1);
: : t->Width = StringGrid1->ColWidths[1];
: : t->Height = StringGrid1->RowHeights[1];
: : t->OnMouseUp = CheckBoxMouseUp;
: : t->Caption = "AAA";
: : t->Checked = false;
: :
: : }
: :
: : void __fastcall TForm1::CheckBoxMouseUp(TObject *Sender,
: : TMouseButton Button, TShiftState Shift, int X, int Y)
: : {
: : TCheckBox* cbCheck = dynamic_cast<TCheckBox*>(Sender);
: :
: : cbCheck->Checked = !cbCheck->Checked;
: : }
:
:
:
|