Ok, have done some further investigations.
By default SQlite saves all kinds of strings as text, meaning if one eg. uses Sqliteman or DB Browser for SQlite, text is allways created as ... tadaaah text.
However this is interpreted as a Memo in Zeos (or FPC, dunno), therefore new text, even if it originates from a sting is inserted as a Memo.
For Zeos/Lazarus to understand how to do it right, the field have to be a Varchar, which is not used internally by SQlite, as it always deals with text - however SQlite accepts (and saves) Varchar in the create statement, so when Zeos/FPC later on reads from the database, it checks the type with the definition.
The tricky part is then, if using one of the above tools, the possibility varchar does not exist, so what one have to do (if not doing it totally by hand) is to use the tool, but do not press accept, but instead copy the suggested SQL statement, and then paste it in to the execute SQL part of the tool, and change all the occurrences of TEXT with VARCHAR(xx).
It is important that there is a length definition af the Varchar, the "xx" part, which have to be below 255 - actually it can have any value, as SQlite internally do not care of the length.
My suggestion is setting it relatively low, eg. 20, otherwise the field will be very wide in DBGrid.