当前位置: 代码迷 >> PB >> freeform格式dw中一个字段setitem纯英文内容怎么使自动换行
  详细解决方案

freeform格式dw中一个字段setitem纯英文内容怎么使自动换行

热度:79   发布时间:2016-04-29 09:56:17.0
freeform格式dw中一个字段setitem纯英文内容如何使自动换行
就是高度设得比较大

set一段较长内容
现在是中文可以自动换行

纯英文不行,除非获得了焦点

mle控件却可以

------解决方案--------------------
还要把那一列的EDIT属性的AUTO HORZ SCROLL钩掉,就是不选种
------解决方案--------------------
~r 是可以换行的
试下吧
abcdef
如果写成
abcd ~r ef
显示结果为:
abcd
ef
------解决方案--------------------
比較難了,英文被看作一個單詞
------解决方案--------------------
英文有空格应该会换行吧
------解决方案--------------------
//函数功能: 一行显示几个字
//函数名称:F_wordwrap
//返回值:string 型,换行后的字符串
//参数说明:string as_text 要换行的字符串; integer ai_charincol 一行显示的字数

int i,li_len,j,k,l,li_totalrow
char lch_char,lch_next
string ls_wrappedtext,ls_next,ls_prev,ls_string

li_len = len(as_text)
j=0 //记ASCII大于127的字符个数
k=0 //记每一行的字符数
l =1 //每一行起始字符在正文中的位置
li_totalrow = 0
ls_wrappedtext = " "

for i=1 to li_len
lch_char = mid(as_text,i,1)
if asc(lch_char) > 127 then
j++
k++
else
if lch_char = '~r ' then
li_totalrow++
k++
ls_wrappedtext += mid(as_text,l,k)
j = 0
l += k
k =0
elseif lch_char = '~n ' then //新行
k++
ls_wrappedtext += mid(as_text,l,k)
l +=k
k --
else
k++
end if
end if

if k > = ai_charincol then//如一行已超过最大长度,则自动折行
lch_next = mid(as_text,i+1,1)
ls_next = mid(as_text,i+1,2)
ls_prev = mid(as_text,i,2)

if lch_next = '~r ' or lch_next = '~n ' then
continue
elseif lch_next = '. ' or lch_next = ', ' or lch_next = '? ' or lch_next = '! ' &
or lch_next = ') ' or lch_next = '] ' or lch_next = '} ' or lch_next = '; ' &
or lch_next = ': ' or lch_next = '~/ ' or lch_next = '~ " ' then

if i <> li_len -1 then
continue
else
exit
end if

elseif ls_prev = ', ' or ls_prev = '。 ' or ls_prev = '? ' &
or ls_prev = '! ' or ls_prev = '” ' or ls_prev = '’ ' or &
ls_prev = ') ' or ls_prev = '; ' or ls_prev = ': ' or ls_prev = '、 ' then

if i <> li_len -1 then
continue
else
exit
end if
elseif ls_next = ', ' or ls_next = '。 ' or ls_next = '? ' &
or ls_next = '! ' or ls_next = '” ' or ls_next = '’ ' or &
ls_next = ') ' or ls_next = '; ' or ls_next = ': ' or ls_next = '、 ' then

if i <> li_len -2 then
j++
i++
k++
continue
else
exit
end if
else