| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 307 人关注过本帖
标题:请教编辑框自动通过改变字号显示全部文字,不出现滚动条,如何实现?辛苦老 ...
只看楼主 加入收藏
wxzd123
Rank: 2
等 级:论坛游民
帖 子:421
专家分:92
注 册:2012-9-6
结帖率:88%
收藏
已结贴  问题点数:20 回复次数:10 
请教编辑框自动通过改变字号显示全部文字,不出现滚动条,如何实现?辛苦老师给段代码
有几个自然段文字,用编辑框来显示,要全部显示则可视编辑框内不出现滚动条,字号尽量大,如何用代码实现?请老师执教,谢谢
搜索更多相关主题的帖子: 老师 代码 滚动条 显示 编辑框 
6 天前 19:39
wxzd123
Rank: 2
等 级:论坛游民
帖 子:421
专家分:92
注 册:2012-9-6
收藏
得分:0 
请教能返回一共有多少行吗
6 天前 20:08
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:427
专家分:1361
注 册:2015-10-2
收藏
得分:0 
这种情况,是不是说:根据编辑框的尺寸大小,无论文章字数有多少,都要填满整个编辑框,这实际上就是总字数决定了字号,每行的字数和总行数。好像首先必须从手工测试开始,多次测试后总结结果,然后再考虑代码吧!
6 天前 23:02
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:903
专家分:1386
注 册:2021-10-13
收藏
得分:0 
鍥炲 2妤
aline
5 天前 01:14
wxzd123
Rank: 2
等 级:论坛游民
帖 子:421
专家分:92
注 册:2012-9-6
收藏
得分:0 
回复 4楼 sam_jiang
老师您好,是用ALINES( ) 函数函数吗,这个没用过,这样写对面
nLineCount = ALINES(laLines, Thisform.Edit1.Value)
MESSAGEBOX("编辑框中共有 " + ALLTRIM(STR(nLineCount)) + " 行文本。")
图片附件: 游客没有浏览图片的权限,请 登录注册
5 天前 05:51
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:903
专家分:1386
注 册:2021-10-13
收藏
得分:10 
回复 5楼 wxzd123
程序代码:
LOCAL ARRAY laLines[1]
nLineCount = ALINES(laLines, Thisform.Edit1.Value) &&wordwrap属性会影响这个值

* 显示总行数
MESSAGEBOX("总行数: " + TRANSFORM(nLineCount))

* 显示每行长度
FOR i = 1 TO nLineCount
    ? "第 " + TRANSFORM(i) + " 行长度: " + TRANSFORM(LEN(laLines[i]))
ENDFOR

如果不能运行,你尝试一下,memlines(),mline(),atline()等函数在试试看

integralheight属性 .t. 可以动态改变edit控件的高度,你也试试看。

 
5 天前 20:24
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:793
专家分:3160
注 册:2018-3-13
收藏
得分:10 
建议改用 Forms.TextBox 替换 vfp.EditBox,Forms.TextBox 提供的 LintCount 属性,就是你需要的自动换行后总行数。
另外,vfp 编辑框的自动换行算法与 windows 标准编辑框换行算法有少许不同,如果你将一段文字分别赋值给 vfp.editbox 和 Forms.TextBox,你会看到 Forms.TextBox 的换行算法更符合公文的行文规范,例如:vfp 经常会把标点符号放在新行的首位,遇到E文单词时,明明后面还有足够空间它也会另起一行。。。同时,这也导致无法利用 win32api 函数精确计算出自动换行后的绘制矩形高度,如果夹杂的E文不多到也近似可用
待我抽空从老代码中简化出一个函数供你参考

[此贴子已经被作者于2025-5-16 19:32编辑过]


这家伙很懒,啥也没留下
3 天前 19:29
wxzd123
Rank: 2
等 级:论坛游民
帖 子:421
专家分:92
注 册:2012-9-6
收藏
得分:0 
谢谢两位老师的帮助,知道行数也不能准确调整字号大小,只能大体调整。Forms.TextBox不能实现背景透明。
前天 05:49
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:793
专家分:3160
注 册:2018-3-13
收藏
得分:0 
示例中也演示了 vfp 与 windows 自动换行的差别,也就解释了为何无法精确计算出 vfp.editbox 最佳字体大小的原因,如果换成 Forms.TextBox,换行规则一致就可精确计算。
EditboxWordWrap.rar (5.68 KB)


[此贴子已经被作者于2025-5-17 08:58编辑过]


这家伙很懒,啥也没留下
前天 08:53
wxzd123
Rank: 2
等 级:论坛游民
帖 子:421
专家分:92
注 册:2012-9-6
收藏
得分:0 
谢谢csyx老师,学习一下,有不明白的在请教
前天 10:44
快速回复:请教编辑框自动通过改变字号显示全部文字,不出现滚动条,如何实现?辛 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042895 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved