Un saluto a tutto il forum. Oggi ho notato che premendo Pg su e Pg giu su una DbGrid quando il dataset non e' attivo genera un errore (operazion cannot be performed on an inactive dataset).
Il problema dipende dal modulo DBGrids.pas, per risolverlo occorre modificare il file DBGrids.pas che si trova nella lcl aggiungendo:
prima del begin dei tasti VK_PRIOR e VK_NEXT.
Ecco il codice corretto:
procedure TCustomDBGrid.KeyDown(var Key: Word; Shift: TShiftState);
[....]
VK_NEXT:
if ValidDataSet then begin //Aggiunto if ValidDataSet then, altrimenti dava errore su griglia non attiva
doOnKeyDown;
if Key<>0 then begin
doMoveBy( VisibleRowCount );
ClearSelection(true);
Key := 0;
end;
end;
VK_PRIOR:
if ValidDataSet then begin //Aggiunto if ValidDataSet then, altrimenti dava errore su griglia non attiva
doOnKeyDown;
if Key<>0 then begin
doMoveBy( -VisibleRowCount );
ClearSelection(true);
key := 0;
end;
end;
Effettuata la variazione, occorre fare il rebuild di Lazarus, e tutto dovrebbe essere a posto.
Spero che questa informazione possa essere di aiuto ad altri.
Buona serata a tutti,
Stefano