[Lazarus] Increasingly frustrated with DbGrids

Luca Olivetti luca at wetron.es
Mon Nov 2 11:12:08 CET 2015


I constantly stumble with the behaviour of the TDBGrid.
I understand that it's a complex component, but every time I find an 
issue an Luiz fixes it, two more pop up (or an older one resurfaces).
The latest episode of the saga is the futility of using a custom editor 
(with OnSelectEditor), since the grids then sets the value of the field 
using this snippet of code

   if (FEditor<>nil) and FEditor.Visible then begin
     Msg.Value:=GetCells(FCol, FRow);
     SetEditText(Msg.Col, Msg.Row, Msg.Value);

and this only works with the editors defined in Grids.pas, the only ones 
managing the GM_GETVALUE message.
For other kinds of editors the result depends on how you move in the 
grid: it could either maintain the value the editor set or reset it to 
an empty string.

I think I will file a bug once I can create a simple project, but in the 
meantime if somebody has an idea on how to solve it, it would be 

Oh, and a custom editor has no way of adapting if the dbgrid is 
scrolled, a column is resized, etc. Again, this only work for the 
editors defined in Grids.pas.

Luca Olivetti
Wetron Automation Technology http://www.wetron.es/
Tel. +34 93 5883004 (Ext.3010)  Fax +34 93 5883007

More information about the Lazarus mailing list