Как установить свойство selected для TGrid на -1
Я использую FMX.Grid.TGrid
в котором пользователь может выбрать полные строки. В некоторых случаях я хочу сбросить этот выбор. Если я сделаю это с grid.selected = -1
или с grid.selectRow(-1)
выбор удаляется из сетки, но grid.selected
установлен на "0" (в TCustomGrid.SelectCell
), который является первым рядом.
Как я могу сбросить выбор, чтобы свойство grid.selected
это "-1"?
2 ответа
Я проверил код библиотеки FMX, я сделал крошечный помощник класса, который позволяет вам получить прямой доступ к частному свойству, которое является значением хранилища выбранной строки. Проверено на Delphi XE8. Этот код будет работать правильно, даже если у вас включены опции "AlwaysShowSelection".
TMyG = class helper for TCustomGrid
public
procedure DoSomethingStrange;
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.btnReadSelectionClick(Sender: TObject);
begin
Caption := Grid1.Selected.ToString;
end;
procedure TForm1.btnResetSelectionClick(Sender: TObject);
begin
Grid1.DoSomethingStrange;
end;
{ TMyG }
procedure TMyG.DoSomethingStrange;
begin
Self.FSelected := -1;
Self.UpdateSelection;
end;
Если ваша цель - не отображать выбранную строку в сетке, вы можете просто расфокусировать ее, сфокусировавшись на другом компоненте.