标题:VFP如何实现【即指即现】功能?
只看楼主
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
结帖率:100%
已结贴  问题点数:20 回复次数:27 
VFP如何实现【即指即现】功能?
请教各位,如何在软件开发中配上【即指即现】功能?即,当鼠标指向某个单词,屏幕上即显示出相关说明?
搜索更多相关主题的帖子: VFP 指向 单词 屏幕 显示 
2018-06-21 12:17
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:565
专家分:1668
注 册:2017-7-16
得分:0 
statusbartext
属性中设置
2018-06-21 13:23
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:2 
假定你的文本在RichText中,以下分两种情况:
如果RichText中有被鼠标拖动选择的单词,则直接取这一部分送入字典模块,将返回的结果显示于一个TextBox中,
如果RichText中没有被选择的单词,则需要跟踪鼠标位置坐标(查一下API,这是常用API,不难找)
再根据坐标在RichText中前后搜索,直到遇到空格(因为文档中单词之间应该是空格分隔),
把取到的单词送入字典模块……
如果要实现金山词霸那样的效果,就不能用一个简单的TextBox来显示,需要做一个表单,把 播放器的OCX放进去。
2018-06-21 14:16
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
不知道楼主是在什么控件中把鼠标指向单词的。

坚守VFP最后的阵地
2018-06-21 20:36
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
回复 4楼 sdta
一个是文本框,还一个是标签。这个功能主要用来注释术语。

[此贴子已经被作者于2018-6-21 23:18编辑过]

2018-06-21 23:16
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:5 
PUBLIC oform1

oform1=NEWOBJECT("form1")
oform1.Show
RETURN


DEFINE CLASS form1 AS form


    DoCreate = .T.
    Caption = "Form1"
    Name = "Form1"


    ADD OBJECT text1 AS textbox WITH ;
        Height = 20, ;
        Left = 72, ;
        Top = 60, ;
        Width = 100, ;
        Name = "Text1"


    ADD OBJECT label1 AS label WITH ;
        AutoSize = .T., ;
        Caption = "", ;
        Height = 16, ;
        Left = 192, ;
        Top = 60, ;
        Width = 2, ;
        Name = "Label1"


    ADD OBJECT command1 AS commandbutton WITH ;
        Top = 120, ;
        Left = 72, ;
        Height = 25, ;
        Width = 60, ;
        Caption = "下一个", ;
        Name = "Command1"


    PROCEDURE Init
        create cursor tt (单词 c(10),中文 c(10))
        insert into tt values ("China","中国")
        insert into tt values ("people","人民")
        go top
        thisform.text1.value=单词
        thisform.label1.caption=中文
    ENDPROC


    PROCEDURE command1.Click
        select tt
        skip
        if not eof()
        else
            go top
        endif
        thisform.text1.value=单词
        thisform.label1.caption=中文
    ENDPROC


ENDDEFINE



[此贴子已经被作者于2018-6-22 01:39编辑过]


坚守VFP最后的阵地
2018-06-22 01:37
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
回复 5楼 cluna2013
忙了一上午,刚刚看到。谢谢!晚上抽空试试看。

[此贴子已经被作者于2018-6-22 14:46编辑过]

2018-06-22 14:45
丁春秋yxp
Rank: 4
等 级:贵宾
威 望:10
帖 子:239
专家分:287
注 册:2017-10-31
得分:5 
将表单的showtips设为真,然后在单词的tooltiptext属性上写上注释内容。表单运行时鼠标放到单词上注释内容就出来了。
收到的鲜花
  • lsh042020-09-01 12:04 送鲜花  1朵  
2018-06-22 15:28
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
以下是引用sdta在2018-6-22 01:37:34的发言:
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
DEFINE CLASS form1 AS form
    DoCreate = .T.
    Caption = "Form1"
    Name = "Form1"
    ADD OBJECT text1 AS textbox WITH ;
        Height = 20, ;
        Left = 72, ;
        Top = 60, ;
        Width = 100, ;
        Name = "Text1"
    ADD OBJECT label1 AS label WITH ;
        AutoSize = .T., ;
        Caption = "", ;
        Height = 16, ;
        Left = 192, ;
        Top = 60, ;
        Width = 2, ;
        Name = "Label1"
    ADD OBJECT command1 AS commandbutton WITH ;
        Top = 120, ;
        Left = 72, ;
        Height = 25, ;
        Width = 60, ;
        Caption = "下一个", ;
        Name = "Command1"
    PROCEDURE Init
        create cursor tt (单词 c(10),中文 c(10))
        insert into tt values ("China","中国")
        insert into tt values ("people","人民")
        go top
        thisform.text1.value=单词
        thisform.label1.caption=中文
    ENDPROC
    PROCEDURE command1.Click
        select tt
        skip
        if not eof()
        else
            go top
        endif
        thisform.text1.value=单词
        thisform.label1.caption=中文
    ENDPROC
ENDDEFINE


我把这段代码放在表单中,结果是这样的。
2018-06-22 20:53
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分:0
注 册:2013-3-2
得分:0 
回复 8楼 丁春秋yxp
我试了您提供的方法,可行。但是字太小,如何将其设定所需要的大小?
另外,我需要的注释,是一个变动的,也就是说,这个注释还必须能识别变化了的内容。是否可以通过DO CASE……ENDDO来实现这一功能?我接下来会试一试。

我已经试过了,可以用DO CASE……ENDDO来识别变化了的内容。现在问题是如何加大ToolTipText?

[此贴子已经被作者于2018-6-22 21:37编辑过]

2018-06-22 20:57



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




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

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