On Thursday 25 June 2009, Feng Feng wrote:
> Hello all,
>
> I want to allow the user only to enter at most 6 characters in the cell of table.
> Here is my implementation:
>
> // class PlanPointTable : public FXTable
> long PlanPointTable::onKeyPress(FXObject *sender, FXSelector sel, void* ptr)
> {
> ...
> FXTableItem *item = getItem(current.row, current.col);
> FXString str = item->getText();
>
> if (str.length() > 5)
> {
> // do nothing
> return 1;
> }
>
> ...
> return 1;
> }
>
> The problem is that during the entering procedure, the returned value of the str is always EMPTY
> until I press ENTER key.
>
> Is there a method that I can get the entered text in the cell on real time?
If you're editing the item with FXTextField, you can set TEXTFIELD_LIMITED and
pass the desired number of columns.
Note that the length of the string is the number of bytes, but the number of characters
may be less than the number of bytes because of the UTF-8 unicode representation; in UTF-8
characters may be 1, 2, 3, or 4 bytes. (the actual representation goes up to 6 but technically
there are no code points above 1,114,112 so 4 bytes is enough).
Use string.count() to figure out how many unicoce characters are in the string...
- Jeroen
------------------------------------------------------------------------------
_______________________________________________
Foxgui-users mailing list
Foxgui-users@...
https://lists.sourceforge.net/lists/listinfo/foxgui-users