|
슬우 님이 쓰신 글 :
: DBGrid에서 DBGrid->SelectedRows->CurrentRowSelected; 욜케 하믄
: 선택되었는지를 알수 있구요
:
: DBGrid->SelectedRows->Count를 하면 몇개의 Row가 선택되었는지 알 수 있습니다..
:
: 제가 알고 싶은 것은 총 10개의 Row가 있는데. ..
:
: 여기서 1,4,5 Row를 선택할 시에는 어떻게 체크해야 할지가 매우 궁금합니다.
아래는 볼랜드 C++ Help 화일에 있는 예제입니다.
여기에 보면 multiselect일 경우에는
SelectedRows에서 Items라는 배열을 보면 알 수 있습니다.
SelectedRows->Count로 갯수를 구하고,
SelectedRows->Items[i]로 해서 각각의 값을 가져올 수 있습니다.
이때 Items[i]로 가져오는 것은 AnsiString이니까, 이걸 숫자로 바꾸거나 해서
다음 처리를 하면 되겠죠.
참고하세요.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (DBGrid1->SelectedRows->Count > 0)
{
AnsiString s = "";
TDataSet *pDS = DBGrid1->DataSource->DataSet;
for (int i=0; i < DBGrid1->SelectedRows->Count; i++)
{
pDS->GotoBookmark((void *)DBGrid1->SelectedRows->Items[i].c_str());
for (int j = 0; j < pDS->FieldCount; j++)
{
if (j>0)
s = s+", ";
s = s + pDS->Fields->Fields[j]->AsString;
}
ListBox1->Items->Add(s);
s = "";
}
}
}
|