[Lazarus] Grid Cell Editors
Tony Whyman
tony.whyman at mccallumwhyman.com
Fri Jul 1 12:16:16 CEST 2016
Vojtěch,
The protected virtual method TCustomGrid.DoEditorShow is a good place to
put any actions you want to take place just before the editor is shown -
but you need to override the method to do this and add your code before
the inherited method is called. This is how I created a DBGrid that
changed the row height before showing the editor.
You probably need to create your own custom component to do this properly.
Regards
Tony Whyman
MWA
On 01/07/16 11:07, Vojtěch Čihák wrote:
> Hello,
>
> I use TStringGrid with my own cell editors and I would like to implement following feature:
> Column of edited cell will be automaticaly enlarged when cell editor appears (and auto-shrinked afterwards).
>
> But I do not use goAlwaysShowEditor and grid triggers OnSelectEditor events even if it actually is not going to show editor.
> (the first click selects cell, triggers OnSelectEditor but no editor is shown yet,
> the second click on the selected cell triggers OnSelectEditor again and now editor appears).
>
> I need to detect in OnSelectEditor whether the grid is really going to show the editor.
>
> So far I have this:
>
> TStrGridAccess = class(TStringGrid); {for access to protected properties}
>
> if (TStrGridAccess(Sender).FGridState=gsSelecting) and not TStringGrid(Sender).EditorMode
> and not (gfNeedsSelectActive in TStrGridAccess(Sender).GridFlags) then writeln('Now!');
>
> It seems to be reliable but of course, it's a hack. Is there a better way?
>
> Thanks, V.
More information about the Lazarus
mailing list