Я использую окна 10 и Сиэтл.
Я пытаюсь изменить tStringGrid.RowCount без запуска события onSelectCell, потому что есть что-то, что не следует запускать, когда ячейка не щелкнута или не выбрана.
Иногда изменение tStringGrid.RowCount запускает событие tStringGrid onSelectCell. После реализации следующего кода с tStringGrid по умолчанию щелкните форму -> нажмите кнопку -> щелкните любую ячейку, индекс строки которой больше 0 -> щелкните форму еще раз, после чего событие onSelectCell сработает при последнем нажатии на событие формы.
Я хочу знать, это ошибка или я что-то не понимаю. В первом случае мне нужно обойти это, и я могу, а во втором случае, пожалуйста, дайте мне знать причину, чтобы решить проблему.
procedure TForm1.Button1Click(Sender: TObject);
begin
StringGrid1.RowCount := 5;
end;
procedure TForm1.FormClick(Sender: TObject);
begin
StringGrid1.RowCount := 1; // at the second time this fires tStringGrid.onSelectCell Event
end;
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin
Memo1.Lines.Add(IntToStr(ACol) + ' ' + IntToStr(ARow));
end;