| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2314 人关注过本帖
标题:如何在表单上双击直接输入当前系统日期时间到表字段中
只看楼主 加入收藏
一起入梦
Rank: 1
来 自:常州
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-7-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
如何在表单上双击直接输入当前系统日期时间到表字段中
请教,如何在表单上双击直接输入当前系统日期时间到表字段中,怎样让快捷菜单在表单,查询状态下右键显现。
搜索更多相关主题的帖子: 表单 菜单 如何 
2011-07-29 12:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
暈死~

授人以渔,不授人以鱼。
2011-07-29 12:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
表單可以觸發雙擊事件

授人以渔,不授人以鱼。
2011-07-29 13:29
一起入梦
Rank: 1
来 自:常州
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-7-25
收藏
得分:0 
不好意思呀我是菜鸟中的菜鸟只是自己要用个才学习这个的。我知道可以触发事件但不会写具体的命令程序才求教大家。

向大家学习
2011-07-29 19:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
在表单的DblClick事件写如下代码:
REPLACE 字段名 WITH DATE()

授人以渔,不授人以鱼。
2011-07-29 19:53
一起入梦
Rank: 1
来 自:常州
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-7-25
收藏
得分:0 
谢谢TonyDeng

向大家学习
2011-07-29 23:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
送你一个弹出式菜单吧。

先把下面的代码储存到一个名为PopupMenu.PRG的文件中:
程序代码:
#DEFINE K_ESC    27

*
* 弹出式菜单
*
DEFINE CLASS _PopupMenu AS ListBox 
    AutoHideScrollBar = 1
    
    PROCEDURE Init(taList[])
        DODEFAULT()
        IF PCOUNT() > 0
            WITH This
                .Clear
                LOCAL lnIndex AS Integer 
                FOR lnIndex = 1 TO ALEN(taList,1)
                    .AddItem(taList[lnIndex,1])
                NEXT 
                .Top = MROW(0,3)
                .Left = MCOL(0,3)
                .Height = .ListCount * FONTMETRIC(1, .FontName, .FontSize) * 1.4
                .Width = LEN(taList[1,1]) * FONTMETRIC(6, .FontName, .FontSize) * 1.4
                .ListIndex = 1
                .AddProperty("Command_List[" + ALLTRIM(STR(.ListCount)) + "]")
                FOR lnIndex = 1 TO .ListCount
                    .Command_List[lnIndex] = taList[lnIndex,2]
                NEXT 
            ENDWITH 
        ENDIF 
    ENDPROC 
    
    PROCEDURE Click
        EVALUATE([This.ListIndex])
        RELEASE This
    ENDPROC 
    
    PROCEDURE MouseLeave(tnButton AS Integer, tnShift AS Integer, tnXCoord AS Integer, tnYCoord AS Integer)
        IF (tnXCoord < OBJTOCLIENT(This, 2)) .OR. (tnXCoord > OBJTOCLIENT(This, 3)) .OR. (tnYCoord < OBJTOCLIENT(This, 1)) .OR. (tnYCoord > OBJTOCLIENT(This, 4))
            RELEASE This
        ENDIF 
    ENDPROC 
    
    PROCEDURE KeyPress(tnKeyCode AS Integer, tnShiftAltCtrl AS Integer)
        IF tnKeyCode == K_ESC
            RELEASE This
        ENDIF 
    ENDPROC 

ENDDEFINE 


使用时,在需要用右键弹出菜单的控件的RightClick事件里,书写如下代码:
程序代码:
SET PROCEDURE TO PopupMenu ADDITIVATE

DIMENSION menu[3,2]            && 二维数组,第一列是菜单项文字,第二列是需要执行的命令
menu[1,1] = "菜单命令1"
menu[1,2] = "GETFILE()"
menu[2,1] = "菜单命令2"
menu[2,2] = "GETDIR()"
menu[3,1] = "菜单命令3"
menu[3,2] = "MESSAGEBOX('弹出菜单测试')"
menu[4,1] = "菜单命令4"
menu[4,2] = "RELEASE This"

ThisForm.AddObject("mnu_PopupMenu", "_PopupMenu")
ThisForm.mnu_PopupMenu.Init(@menu)
ThisForm.mnu_PopupMenu.Visible = .T.
ThisForm.mnu_PopupMenu.SetFocus

授人以渔,不授人以鱼。
2011-07-30 10:49
一起入梦
Rank: 1
来 自:常州
等 级:新手上路
帖 子:11
专家分:0
注 册:2011-7-25
收藏
得分:0 
再次谢谢TonyDeng
我很幸运能得你如此帮助

向大家学习
2011-07-30 11:33
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
不客气,写这个东西工作量不大。

张洪举的书中也有一个弹出快捷菜单的例程,是用MENU的,我一向不用菜单,所以自己改写了用控件版本的。这个用LISTBOX控件,LISTBOX能有的东西它也能有,比纯MENU的灵活一些。其实,张洪举代码也用了二维数组,代码量比我现在这个还多一些。

授人以渔,不授人以鱼。
2011-07-30 11:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
#DEFINE K_ESC    27

Main()
RETURN

PROCEDURE Main()
    LOCAL loForm
    loForm = NEWOBJECT("_MainForm")
    loForm.Show
    READ EVENTS
ENDPROC 

* 主表单
DEFINE CLASS _MainForm AS Form
    Caption = "弹出菜单测试"
   
    ADD OBJECT Label1 AS Label WITH Caption = "鼠标右击我弹出菜单", ;
                                    Top = 5, ;
                                    Left = 5, ;
                                    Width = 200, ;
                                    Height = 25, ;
                                    BorderStyle = 1, ;
                                    Alignment = 2
   
    PROCEDURE Label1.RightClick
        LOCAL laMenu[3,2]            && 二维数组,第一列是菜单项文字,第二列是需要执行的命令

        laMenu[1,1] = "菜单命令1"
        laMenu[1,2] = "GETFILE()"
        laMenu[2,1] = "菜单命令2"
        laMenu[2,2] = "GETDIR()"
        laMenu[3,1] = "菜单命令3"
        laMenu[3,2] = "MESSAGEBOX('弹出菜单测试')"

        ThisForm.AddObject("mnu_PopupMenu", "_PopupMenu")
        WITH ThisForm.mnu_PopupMenu
            .Init(@laMenu)
            .Visible = .T.
            .SetFocus
        ENDWITH 

    ENDPROC
   
    PROCEDURE Destroy
        CLEAR EVENTS
    ENDPROC
   
ENDDEFINE 

*
* 弹出式菜单
*
DEFINE CLASS _PopupMenu AS ListBox
    AutoHideScrollBar = 1
   
    PROCEDURE Init(taList[])
        DODEFAULT()
        IF PCOUNT() > 0
            WITH This
                .Clear
                LOCAL lnIndex AS Integer
                FOR lnIndex = 1 TO ALEN(taList,1)
                    .AddItem(SPACE(4) + taList[lnIndex,1] + SPACE(4))
                NEXT
                .Top = MROW(0,3)
                .Left = MCOL(0,3)
                .Height = .ListCount * FONTMETRIC(1, .FontName, .FontSize) * 1.4
                .Width = (LEN(taList[1,1]) + 8) * FONTMETRIC(6, .FontName, .FontSize) * 1.4
                .ListIndex = 1
                .AddProperty("Command_List[" + ALLTRIM(STR(.ListCount)) + "]")
                FOR lnIndex = 1 TO .ListCount
                    .Command_List[lnIndex] = taList[lnIndex,2]
                NEXT
            ENDWITH
        ENDIF
    ENDPROC
   
    PROCEDURE Click
        EVALUATE([This.ListIndex])
        RELEASE This
    ENDPROC
   
    PROCEDURE MouseLeave(tnButton AS Integer, tnShift AS Integer, tnXCoord AS Integer, tnYCoord AS Integer)
        IF (tnXCoord < OBJTOCLIENT(This, 2)) .OR. (tnXCoord > OBJTOCLIENT(This, 3)) .OR. (tnYCoord < OBJTOCLIENT(This, 1)) .OR. (tnYCoord > OBJTOCLIENT(This, 4))
            RELEASE This
        ENDIF
    ENDPROC
   
    PROCEDURE KeyPress(tnKeyCode AS Integer, tnShiftAltCtrl AS Integer)
        IF tnKeyCode == K_ESC
            RELEASE This
        ENDIF
    ENDPROC 

ENDDEFINE

授人以渔,不授人以鱼。
2012-11-15 00:52
快速回复:如何在表单上双击直接输入当前系统日期时间到表字段中
数据加载中...
 
   



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

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