[Lazarus] TDBEdit, TStringField Size, DataSize, DisplayWidth and MaxLength

Martin Schreiber mse00000 at gmail.com
Tue Oct 11 17:52:18 CEST 2016


On Tuesday 11 October 2016 16:19:18 Tony Whyman via Lazarus wrote:
> On 11/10/16 15:14, Martin Schreiber via Lazarus wrote:
> >          case i2 of
> >           5,6,8,44,56,57,64: begin
>
> Agree with 5,6, 44, 56, 57 as  two byte character sets.
>
> 8 doesn't seem to exist (at least in my version).
>
> 64 is KOI8U. According to Wikipedia "KOI8-U is an 8-bit character
> encoding, designed to cover Ukrainian, which uses a Cyrillic alphabet.
> It is based on KOI8-R, which covers Russian and Bulgarian, but replaces
> eight graphic characters with four Ukrainian letters Ґ, Є, І, and Ї in
> both upper case and lower case."
>
> It should be the same character width as character set 63 (KOI8R) i.e. 1.

I don't remember from where I got the numbers. Maybe by reading FB-sources or 
reading RDB$BYTES_PER_CHARACTER. On my current FB 2.5 installation "64" 
actually is 1 byte per character, thanks for pointing it out, it allready has 
been fixed in git master.
In MSEgui and the newer ZEOSlib versions the datasize of a string in TDataset 
record buffer is sizeof(pointer). In MSEgui it is a UnicodeString in ZEOS 
IIRC a pointer to a special string record.

Martin


More information about the Lazarus mailing list