Форум — Ответы     (  К темам )
 ?  MrSergei: StringGrid и скроллинг (16-01-2003 21:08:19)
На форме есть таблица (StringGrid), по размерам она больше формы, поэтому
есть скролбары. Я организовал поиск в таблице по ключевому слову,
при нахождении слова ячейка выделяется, как показать ячейку, если
она не видна (выходит за границу формы), к примеру,
находится в конце таблицы, как программно задействовать
ScrollBar на StringGrid-е?
 Владимир (17-01-2003 09:51:15)
// заполняем StringGrid чем-либо
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for(int i=0; i<StringGrid1->ColCount; i++){
for(int j=0; j<StringGrid1->RowCount; j++){
StringGrid1->Cells[i][j] = IntToStr(i)+IntToStr(j);
}
}
}
//-----------------------------------------------------------------
// осуществляем поиск по Edit1->Text
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int i,j;
AnsiString s = Edit1->Text;
for(i=0; i<StringGrid1->ColCount; i++){
for(j=0; j<StringGrid1->RowCount; j++){
if(s == StringGrid1->Cells[i][j]) { // нашли
StringGrid1->SetFocus();
TGridRect myRect;
myRect.Left = i; myRect.Top = j;
myRect.Right = i; myRect.Bottom = j;
// выделяем найденную ячейку
StringGrid1->Selection = myRect;
// вот оно — показываем ячейку — прокручивается ScrollBar если нужно
StringGrid1->LeftCol = i;
StringGrid1->TopRow = j;
return;
}
}
}
}
//---------------------------------------------------------------------------