From: Silin R.R. <ro...@ma...> - 2005-11-14 09:09:31
|
Best regards for synedit project.=20 Error has been finded in SynEdit.pas I use for russian windows: function IsBreakChar(aType: Word; aInfoIndex: integer): boolean; const C3_RUSIGNOR =3D C3_NONSPACING + C3_DIACRITIC; var iByteIndex: integer; begin case IsStringType(aType) of stControl, stWideSymbol: Result :=3D True; stHalfNumAlpha, stHalfSymbol: begin iByteIndex :=3D CharToByteIndex( TempString, aInfoIndex +1 ); Result :=3D not (TempString[ iByteIndex ] in IdChars); end; else Result :=3D (aType and not C3_RUSIGNOR) <> (TypeOnCaret and not C3_RUSIGNOR); end; end; p.s. WinNT server return =20 C3_NONSPACING + C3_DIACRITIC + C3_ALPHA, but WinXP with SP2 return C3_DIACRITIC + C3_ALPHA. One word can have code $8000 or $8002 or $8003. king regards, roman silin |