diff --git a/funcext/tvclib/cstructurelib.tsf b/funcext/tvclib/cstructurelib.tsf index 3ac192f..17ed889 100644 --- a/funcext/tvclib/cstructurelib.tsf +++ b/funcext/tvclib/cstructurelib.tsf @@ -2205,8 +2205,6 @@ begin len1 := length(names); if(len1>length(names union2 array()))then raise functionname()+"结构体变量名重复"; ctypebytes := static get_c_typesize();;//getctypesize(); - ctypebytes["user*"]:= ctypebytes["intptr"]; - ctypenames := mrows(ctypebytes,1); itemslen := calcalimsizeA(data,ctypebytes);//对其长度 for i,vi in data do begin @@ -2383,6 +2381,7 @@ begin r["float"] := 4; r["FLOAT"] := 4; r["pointer"] := psize; + r["user*"] := psize; r["INT64"] := 8; r["int64"] := 8; //echo "\r\n>>>>gettype"; diff --git a/funcext/tvclib/utslmemo.tsf b/funcext/tvclib/utslmemo.tsf index c133f80..ddf5216 100644 --- a/funcext/tvclib/utslmemo.tsf +++ b/funcext/tvclib/utslmemo.tsf @@ -1131,6 +1131,20 @@ type TCustomMemo = class(TCustomScrollControl,TCustomMemoCmd) // if c<32 and not(c in array(9))then return; cc := e.char; //if e.CharCode=VK_TAB then return inherited; + /////////////////处理特殊的gbk编码的字符比如:弢//20240429//////////////////////////// + if FInPutCache then + begin + cc := FInPutCache+cc; + FInPutCache:=0; + end else + if (c .& 0x80)<> 0 then + begin + FInPutCache := cc; + return ; + end + CharInput(cc); + return inherited; + /////////////gbk汉字编码可能存在不全面///////////////////////////////////// if(c .& 0x80)<> 0 then begin if FInPutCache then @@ -1149,6 +1163,7 @@ type TCustomMemo = class(TCustomScrollControl,TCustomMemoCmd) // CharInput(cc); end inherited; + ////////////////////////////////////////////////// end function InsertChars(s);virtual;//当前位置插入字符 begin diff --git a/funcext/tvclib/utslvclstdctl.tsf b/funcext/tvclib/utslvclstdctl.tsf index 5a8956b..8d5e22e 100644 --- a/funcext/tvclib/utslvclstdctl.tsf +++ b/funcext/tvclib/utslvclstdctl.tsf @@ -1543,6 +1543,21 @@ type teditable=class(TSLUIBASE) // end if c<32 then return; if FReadOnly then return; + ////////////////////////// + cc := e.char; + if FHafChar then + begin + cc := FHafChar+cc; + FHafChar := 0; + end else + if c .& 0x80 then + begin + FHafChar := cc; + return ; + end + InsertChar(cc); + return ; + ///////////////////////////////// if c .& 0x80 then begin if FHafChar then diff --git a/tsleditor.exe b/tsleditor.exe index b3d8218..7d770c4 100644 Binary files a/tsleditor.exe and b/tsleditor.exe differ