私はそれを作ろうとしているカスタム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();