Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.119.131.178] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте, Уважаемые знатоки!
Прошу помощи по заезженному компоненту StringGrid. Подскажите как программно заблокировать прокрутку скроллом зафиксированной строки или нескольких строк?! В сети подобных вопросов/решений не нашел. Может кто-то подымал такой вопрос?! Спасибо! |
Сообщ.
#2
,
|
|
|
Цитата zhuravlev80 @ е как программно заблокировать прокрутку скроллом Цитата zhuravlev80 @ зафиксированной строки или нескольких строк? Каким комонетом пользуемся? |
Сообщ.
#3
,
|
|
|
Цитата Bas @ Для отображения данных используется TStringGrid. у компонента вызываю события StringGrid1DrawCell с кодом const AnsiString text = this->StringGrid1->Cells[ACol][ARow]; // Если это заголовок if ((State.Contains(gdFixed)) || (ARow == 0)) { this->StringGrid1->Canvas->Brush->Color = clBtnFace; this->StringGrid1->Canvas->Font->Color = clWindowText; this->StringGrid1->Canvas->FillRect(Rect); Frame3D(this->StringGrid1->Canvas, Rect, clBtnHighlight, clBtnShadow, 1); //this->StringGrid1->Canvas->TextRect(Rect, Rect.Left + 5, Rect.Top + 5, text); //DrawText(this->StringGrid1->Canvas->Handle, text.c_str(), text.Length(), &Rect, DT_WORDBREAK); } // если ячейка выделена else if (State.Contains(gdSelected)) { this->StringGrid1->Canvas->Brush->Color = clHighlight; this->StringGrid1->Canvas->Font->Color = clHighlightText; this->StringGrid1->Canvas->FillRect(Rect); //this->StringGrid1->Canvas->TextRect(Rect, Rect.Left + 5, Rect.Top + 5, text); } // закрашиваем ячейку (2, 2) else //if (this->ErrorRow != NULL) { if ((!this->ErrorRow[ARow]) && (ARow > 0) && (this->SortNow)) { this->StringGrid1->Canvas->Brush->Color = clSkyBlue; // clBlue; this->StringGrid1->Canvas->Font->Color = clRed; this->StringGrid1->Canvas->FillRect(Rect); //this->StringGrid1->Canvas->TextRect(Rect, Rect.Left + 5, Rect.Top + 5, text); } //} // Для всех остальных ячеек else { this->StringGrid1->Canvas->Brush->Color = this->StringGrid1->Color; this->StringGrid1->Canvas->Font->Color = this->StringGrid1->Font->Color; this->StringGrid1->Canvas->FillRect(Rect); //this->StringGrid1->Canvas->TextRect(Rect, Rect.Left + 5, Rect.Top + 5, text); } this->StringGrid1->Canvas->TextRect(Rect, Rect.Left + 5, Rect.Top + 5, text); так же StringGrid1MouseWheelDown this->StringGrid1->Perform(WM_VSCROLL, SB_PAGEDOWN, 0); Handled = true; и StringGrid1MouseWheelUp this->StringGrid1->Perform(WM_VSCROLL, SB_PAGEUP, 0); Handled = true; свойство DefaultDrawing = false; все остальные свойства по умолчанию! И Получается что при прокрутке скролла первая фиксированная строка прокручивается вместе со всей таблицей. Как сделать так чтобы она оставалась на месте, не перемещалась вместе со всей таблицей?!?! Спасибо! |
Сообщ.
#4
,
|
|
|
Свойство FixedRows поставьте 1 (по умолчанию и была 1)
|
Сообщ.
#5
,
|
|
|
Нашел в чем была ошибка:
при инициализации таблицы выполнялся код, который приводил к выше описанной ошибке!!! for (int i = 0; i < grid->RowCount; i++) grid->Rows[i]->Clear(); for (int i = 0; i < grid->ColCount; i++) grid->Cols[i]->Clear(); потом таблица заполнялась данными, и в конце дополнил строкой if (grid->RowCount > 1) grid->FixedRows = 1; что исключило ошибку. Всем Спасибо! |
Сообщ.
#6
,
|
|
|
Меня всегда эта "особенность" вымораживала: ой, строчек в гриде нету? ну, тогда сносим фиксированные тоже, обнуляя их счётчик.
|
Сообщ.
#7
,
|
|
|
Цитата Mr.Delphist @ Меня всегда эта "особенность" вымораживала: ой, строчек в гриде нету? ну, тогда сносим фиксированные тоже, обнуляя их счётчик. Ну бывает! а иронизировать зачем?! Вас, что кто-то укусил?! Мой косяк, не досмотрел! Что и кому, это доказали?! не Вы же подсказали, а ребята которые отозвались!!! или рвет, что не Вы подсказали?! |
Сообщ.
#8
,
|
|
|
Цитата zhuravlev80 @ Ну бывает! а иронизировать зачем?! Вы немного не так меня поняли. Это косяк не Ваш, а самого грида. Ну нельзя почему-то в нём иметь фикс-строку без строк данных. Иначе получится, что грид автоматом зануляет фикс-счётчик (что для строк, что для столбцов). ЗАЧЕМ?! Ведь заголовки слетают сразу. |
Сообщ.
#9
,
|
|
|
Mr.Delphist, Извините, что "наехал" на Вас! Теперь я Вас понял! И согласен с Вами полностью!
|