19.10.2022, Vladimír Klaus, navštíveno 508x
Delphi
Při práci s TcxGrid, resp. TcxGridView mě velmi často trápilo to, že není možné při "CellSelect=false" editovat údaje. Je to ale pochopitelné - buňka nejde vybrat, tak jak bych ji mohl editovat, že? Ale když povolím výběr buňky, tak zase hrozí neúmyslná změna hodnoty a také to není uživatelsky tak přívětivé, jako když je selektována celá řádka.
Připravil jsem si tedy náhradní řešení, které vypadá nadějně.
{*----------------------------------------------------------------------
Po doubleclicku umožním editaci tak, že umožním seletování buněk.
Celý GridView má pochopitelně editaci povolenou
-----------------------------------------------------------------------}
procedure TMyForm.MyGridViewCellDblClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
TcxGridDBTableView(Sender).OptionsSelection.CellSelect:=true;
end;
{*----------------------------------------------------------------------
Po uložení záznamu (přímo uložení nebo přechodem na další řádek)
zruším možnost selektování buněk
-----------------------------------------------------------------------}
procedure TMyForm.MyViewFocusedRecordChanged(
Sender: TcxCustomGridTableView; APrevFocusedRecord,
AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
begin
TcxGridDBTableView(Sender).OptionsSelection.CellSelect:=false;
end;