У меня есть пользовательский элемент управления TGrid
, который я пытаюсь сделать так, чтобы при наведении курсора мыши на строку эта строка выделялась. Строки автоматически выделяются, если я использовал клавиши со стрелками для навигации по сетке. Однако я не уверен, как воспроизвести этот эффект для навигации с помощью мыши.
В настоящее время у меня есть функция MouseMove, которая может определить, над какой строкой сетки находится мышь.
void __fastcall TFmSearchBar::GridMouseMove(TObject *Sender, TShiftState Shift, float X, float Y)
{
int rowSelected = FGrid->RowByPoint(X, Y);
if(rowSelected >= FGrid->RowCount)
rowSelected = FGrid->RowCount - 1;
if(rowSelected != -1)
{
FGrid->SelectRow(rowSelected);
}
}
Первоначально я думал, что использование функции SelectRow
позволит достичь желаемого эффекта, однако при использовании этого метода ничего не происходит. Кроме того, я попытался использовать
FGrid->SelectCell(0, rowSelected);
что тоже не сработало.
Я подтвердил, что получаю правильную строку из функции, устанавливая текст строки жирным шрифтом, когда мышь наводит на нее курсор, используя
FGrid->RowObjects[rowSelected]->SetBold();