TStringGridの固定セルをクリックしてOnFixedCellClickイベントを発生させるには?

提供: Support
移動先: 案内検索

概要

TStringGridの固定セルをクリックしてOnFixedCellClickイベントを発生させるには、OptionsプロパティにgoFixedRowClickまたはgoFixedColClick、あるいはその両方が選択されている必要があります。


またOnFixedCellClickイベントを発生させる条件は、Vcl.Grid.pasのコードでは以下のように実装されています。

procedure TCustomGrid.MouseUp(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
var
..

     if (Button = mbLeft) and FHotTrackCell.Pressed and
         (FHotTrackCell.Rect.Left <> -1) and (FHotTrackCell.Rect.Top <> -1) and
         (((goFixedColClick in FOptions) and (Cell.X < FFixedCols) and (Cell.X >= 0)) or
         ((goFixedRowClick in FOptions) and (Cell.Y < FFixedRows) and (Cell.Y >= 0))) then
        FixedCellClick(Cell.X, Cell.Y);
..

goFixedColClickあるいはgoFixedRowClickをOptionsとして設定する他に以下の条件も必要です。

  • FixedCols < ColCount -1
  • FixedRows < RowCount -1


例えば、goFixedRowClickのOptionsを有効、かつFixedRows = 1の場合、RowCount = 1に設定すると、OnFixedCellClickイベントは発生しません。この条件では、RowCount >= 2に設定する必要があります。

関連情報