标题:求助,关于label控件与字符位置
只看楼主
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
看下你16楼与18楼的回复是否自相矛盾

坚守VFP最后的阵地
2018-10-09 13:16
xfqzyh
Rank: 1
等 级:新手上路
帖 子:21
专家分:2
注 册:2013-3-2
得分:0 
回复 21楼 sdta
我表述不清,但与所问有关系吗?
2018-10-09 13:21
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
当然有关系了

坚守VFP最后的阵地
2018-10-09 13:24
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:5 
换一个思路,我以前是 这样做的,根本不必去操心控件之间的位置问题。感觉你有点钻牛角尖了。

收到的鲜花
  • xfqzyh2018-10-10 11:09 送鲜花  1朵   附言:也是一种不错的思路。
2018-10-09 14:13
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用xfqzyh在2018-10-9 09:18:08的发言:
thisform.label1.caption=sj1+"特定字符"+sj2+"特定字符"+sj3+"特定字符"+sj4&&特定字符与文本框的长度一样
thisform.tkt1.left=特定字符1的left值&&tkt为文本框控件
thisform.tkt2.left=特定字符2的left值
thisform.tkt3.left=特定字符3的left值

这样可否:
按“特定字符”分组:label1、label2、label3、......
label1 + tkt1 + label2 + tkt2 + label3 + tkt3 + ......
2018-10-09 14:33
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:352
专家分:1152
注 册:2015-10-2
得分:0 
可以找到相对位置,看看是否有用。如果有多行,可按自已规定的长度分行,分别查找。

 cap1="自2017年7月1日起,购买方为企业(  )的,索取增值税普通发票时,应向销售方提供(     )纳税人识别号或统一社会信用(         )代码;"
 cap2=CHRTRAN(cap1,' ','$')   && 如果字串中有空格,用一个不常用的符号,比如:'$' 等等,来填充。允许(空格)占字节不只是6个汉字。

 ?ATCC('($$',cap2,1) && 一个汉字至少2个字节,查找  ($$  所在的位置。
 ?ATCC('($$',cap2,2)
 ?ATCC('($$',cap2,3)
2018-10-10 03:41
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
得分:0 
做一个 INI 或 Mem 文件
保存 A/B/C 的 Left 参数
使用的时候调用它
每台电脑一个
宽屏/窄屏都可定制
比如
lcLeft_A = 300
lcLeft_B = 400
lcLeft_C = 500

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2018-10-10 08:47
xfqzyh
Rank: 1
等 级:新手上路
帖 子:21
专家分:2
注 册:2013-3-2
得分:0 
回复 25楼 吹水佬
假如有三个label,且每个的字符个数相同,如中英字混合或填空个数的不同会出现label的width不同。
2018-10-10 11:13
xfqzyh
Rank: 1
等 级:新手上路
帖 子:21
专家分:2
注 册:2013-3-2
得分:0 
回复 26楼 wcx_cc
如果一个label的长度固定,有三行的时候,没法准确判断第二行,第三行的特定字符left值
2018-10-10 11:16
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用xfqzyh在2018-10-10 11:13:34的发言:

假如有三个label,且每个的字符个数相同,如中英字混合或填空个数的不同会出现label的width不同。

大概意思是这样:


CLEAR
CLEAR ALL
s = "自2017年7月1日起,购买方为企业A的,索取增值税普通发票时,应向销售方提供B纳税人识别号"
ALINES(arr, s, "A","B","C")

_screen.AddObject("label1","label")
_screen.label1.caption = arr[1]
_screen.label1.autosize = .T.
_screen.label1.visible = .T.
nleft = _screen.label1.width
_screen.AddObject("text1","textbox")
_screen.text1.Left = nleft
_screen.text1.visible = .T.
nleft = nleft + _screen.text1.width

_screen.AddObject("label2","label")
_screen.label2.caption = arr[2]
_screen.label2.left = nleft
_screen.label2.autosize = .T.
_screen.label2.visible = .T.
nleft = nleft + _screen.label2.width
_screen.AddObject("text2","textbox")
_screen.text2.Left = nleft
_screen.text2.visible = .T.
nleft = nleft + _screen.text2.width

_screen.AddObject("label3","label")
_screen.label3.caption = arr[3]
_screen.label3.left = nleft
_screen.label3.autosize = .T.
_screen.label3.visible = .T.


[此贴子已经被作者于2018-10-10 15:01编辑过]

2018-10-10 14:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490245-1-1.html




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

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