Задача такая: нужна таблица с привязанным к каждой строчке CheckBox, строк в таблице больше 50. При этом обязательно должны меняться размеры столбцов. Размеры окна тоже могут меняться, причем таблица должна занимать всегда всю клиентскую область. Нулевая строчка фиксирована - в ней заголовки. И надо реализовать прокрутку таблицы, причем при прокрутке обязательно должна оставаться видимой нулевая фиксированная строчка. Подскажите пожалуйста, как это можно сделать?
Пробовала так:
| Код | void __fastcall TForm1::FormCreate(TObject *Sender) { //строим таблицу и колонку для CheckBox StringGrid1->RowCount =RC; for (int i=1; i<=StringGrid1->RowCount; ++i) { NewCheckBox[i-1] = new TCheckBox(Application->Handle); //создали компонент StringGrid1->Objects[0][i] = NewCheckBox[i-1]; //привязали к таблице
NewCheckBox[i-1]->OnClick = CheckBox1->OnClick;
TRect Rect = StringGrid1->CellRect(0,i); NewCheckBox[i-1]->Left = StringGrid1->Left + Rect.Left+2; NewCheckBox[i-1]->Top = StringGrid1->Top + Rect.Top+2; NewCheckBox[i-1]->Width = Rect.Right - Rect.Left; NewCheckBox[i-1]->Height = Rect.Bottom - Rect.Top; NewCheckBox[i-1]->Name = "NCB"+IntToStr(i-1);
NewCheckBox[i-1]->Visible = true; NewCheckBox[i-1]->Parent = Panel1;
NewCheckBox[i-1]->Color = StringGrid1->Color; NewCheckBox[i-1]->Caption = " "+IntToStr(i);
} }
|
Вылезла такая проблема : Panel1 всегда имеет размер равный клеентской области. Соответственно видны только те CheckBox, которые "влизают" в клиентскую область. А нужны все |