以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  动态函数修改  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173791)

--  作者:飘过的巨蟹座
--  发布时间:2021/12/16 14:05:00
--  动态函数修改
原来的动态函数
            Functions.Remove("CreateMenu")
            Dim Code As String = ""
            Code = "Dim menu As New " & dr("cdlx") & "(""" & dr("_Identify") & """)" & vbcrlf
            Code = Code & "Return menu"
            
            Functions.Add("CreateMenu", Code)
            Functions.Complie()
现在该怎么写这个函数呢,麻烦蓝老师
[此贴子已经被作者于2021/12/16 14:06:11编辑过]

--  作者:有点蓝
--  发布时间:2021/12/16 14:12:00
--  
Dim menu As object
select case dr("cdlx")
case "RibbonMenu.Group"
menu = new RibbonMenu.Group(dr("_Identify"))
case "RibbonMenu.Button"
menu = new RibbonMenu.Button(dr("_Identify"))
end select


--  作者:飘过的巨蟹座
--  发布时间:2021/12/17 0:46:00
--  
LockBaseMainForm() \'锁定主窗口



QAT.Items.Clear
ConfigBar.Items.Clear

Dim dt As DataTable = DataTables("qxb")
For Each dr As DataRow In dt.DataRows
    Select Case dr("gnlx")
        Case "功能区"
            Dim ntab As RibbonMenu.Tab
            Dim ngrp As RibbonMenu.Group
            Dim nmenu As Object

            If RibbonTabs.Contains(dr("gnq")) Then
                ntab = RibbonTabs(dr("gnq"))
            Else
                ntab = New RibbonMenu.Tab(dr("gnq"))
                RibbonTabs.Add(ntab)
            End If
            
            If ntab.Groups.Contains(dr("gnz")) Then
                ngrp = ntab.Groups(dr("gnz"))
            Else
                ngrp = New RibbonMenu.Group(dr("gnz"))
                ntab.Groups.Add(ngrp)
            End If
            
            \'编译一个生成不同菜单的函数
            Functions.Remove("CreateMenu")
            Dim Code As String = ""
            Code = "Dim menu As New " & dr("cdlx") & "(""" & dr("_Identify") & """)" & vbcrlf
            Code = Code & "Return menu"
            
            Functions.Add("CreateMenu", Code)
            Functions.Complie()
            
            nmenu = Functions.Execute("CreateMenu")
            
            ntab.Text = dr("gnq")
            ngrp.Text = dr("gnz")
            nmenu.Text = dr("cdbt")
            nmenu.LargeImage = GetImage(dr("cdtb"))
            ngrp.Items.Add(nmenu)   \'加入菜单


        Case "快速访问栏"
            \'编译一个生成不同菜单的函数
            Functions.Remove("CreateMenu")
            Dim Code As String = ""
            Code = "Dim menu As New " & dr("cdlx") & "(""" & dr("_Identify") & """)" & vbcrlf
            Code = Code & "Return menu"
            
            Functions.Add("CreateMenu", Code)
            Functions.Complie()
            
            Dim nmenu As Object = Functions.Execute("CreateMenu")
            nmenu.Text = dr("cdbt")
            nmenu.LargeImage = GetImage(dr("cdtb"))
            QAT.Items.Add(nmenu)


        Case "配置栏"
            \'编译一个生成不同菜单的函数
            Functions.Remove("CreateMenu")
            Dim Code As String = ""
            Code = "Dim menu As New " & dr("cdlx") & "(""" & dr("_Identify") & """)" & vbcrlf
            Code = Code & "Return menu"
            
            Functions.Add("CreateMenu", Code)
            Functions.Complie()
            
            Dim nmenu As Object = Functions.Execute("CreateMenu")
            nmenu.Text = dr("cdbt")
            nmenu.LargeImage = GetImage(dr("cdtb"))
            ConfigBar.Items.Add(nmenu)
    End Select
Next
UnLockBaseMainForm() \'解锁主窗口
蓝老师,按照你的办法我添加了,没有用,这个是原代码,该怎么处理啊

--  作者:有点蓝
--  发布时间:2021/12/17 8:40:00
--  
请上传实例测试
--  作者:飘过的巨蟹座
--  发布时间:2021/12/17 13:29:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:动态菜单.foxdb


--  作者:飘过的巨蟹座
--  发布时间:2021/12/17 13:30:00
--  
这个函数我引用到登录按钮上了
--  作者:有点蓝
--  发布时间:2021/12/17 13:56:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:动态菜单.zip


--  作者:飘过的巨蟹座
--  发布时间:2021/12/17 17:00:00
--  
蓝老师,好像没有什么变化啊
--  作者:有点蓝
--  发布时间:2021/12/17 17:11:00
--  
我测试没有问题。什么地方没有变化?截图说明
--  作者:飘过的巨蟹座
--  发布时间:2021/12/17 17:15:00
--  

[此贴子已经被作者于2021/12/18 15:26:57编辑过]