请教2个问题:如何在光标离开文本框时获取光标位置2.如何获取当前操作系统字库文件所在路径

fastgyk 2011-12-14 10:05:28
第1个问题:要在文本框的文字中间插入一个特殊字符,但需要按一个按钮来实现插入,这就需要在光标离开文本框时获取光标在这些文字中的具体位置,以便在按这个按钮后把这个特殊字符插入到文本中的相应位置。

第2个问题:有时用户安装了多个操作系统,如何获取当前操作系统字库文件所在路径,一般是C:\WINDOWS\FONTS,但有时当前系统不一定在C盘。
...全文
277 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
十豆三 2011-12-14
  • 打赏
  • 举报
回复
1、
假设你的文本框为 Text1,在此控件的 Lostfocus 事件写代码:
This.Tag=Transform(This.SelStart)

然后在你的输入特殊字符的按钮的 Click 事件写代码:
Thisform.Text1.Value=Left(Thisform.Text1.Value,Val(Thisform.Text1.Tag))+'特殊字符'+Substr(Thisform.Text1.Value,Val(Thisform.Text1.Tag)+1)

2、
loShell=createobject('wscript.shell')
lcMyPath=loShell.SpecialFolders('Fonts')
?lcMyPath
fastgyk 2011-12-14
  • 打赏
  • 举报
回复
运行后提示:找不到SelStart属性,我用的是VFP6.0,另外我没找到按钮有MouseEnter事件
taohua300 2011-12-14
  • 打赏
  • 举报
回复
这是在表单中

如果在容器,页框或者其他中

你再修改一下
taohua300 2011-12-14
  • 打赏
  • 举报
回复
那就这样吧

表单init事件

public lnWhere

按钮的MouseEnter事件

ps = thisform.ActiveControl
lnWhere = ps.SelStart

按钮的click事件

messagebox(lnWhere)
fastgyk 2011-12-14
  • 打赏
  • 举报
回复
谢谢taohua300的答复。关于取当前系统字库所在目录的回答非常正确。
您的第2个问题的回答由于我水平有限没能看懂,我是想取出当光标离开此文本框时光标在这个文本中的第几个字符位置,以便准确将特殊字符插入到离开前的位置。就像是截取字符串时要知道从第几个字符开始截取一样。
taohua300 2011-12-14
  • 打赏
  • 举报
回复
如果是自定义控件

thisform.oControl.class = ‘自定义控件名'

可以点击控件,然后在属性中看Class 属性
taohua300 2011-12-14
  • 打赏
  • 举报
回复
1. ? thisform.ActiveControl.Name

感觉这个不是太好用

还有另一个方法

给表单新建一个属性 oControl

初始化为 .f.

在text edit控件的gotfocus事件中写

thisform.oControl = this

单击按钮的时候判断thisform.oControl即可

判断是不是text活edit

if thisform.oControl.class = 'TextBox' or thisform.oControl.class = 'EditBox'
?thisform.oControl.name
endif
taohua300 2011-12-14
  • 打赏
  • 举报
回复
2. ? Getenv("windir") + '\font'
dfwxj 2011-12-14
  • 打赏
  • 举报
回复
SelStart
taohua300 2011-12-14
  • 打赏
  • 举报
回复
fastgyk 2011-12-14
  • 打赏
  • 举报
回复
正解,非常感谢!

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧