窗体和控件

FMSYS

FMSYS是PML专门用于系统、窗体、菜单的对象,其不同于标准对象。由于其特殊性,使用方法也有所差异。

由于对象的特殊性,可直接使用全局变量使用。!!FMSYS

LoadForm

该方法主要用于将窗体对象加载到内存中。如果想调用窗体对象中的方法,又不想使用show !!formName的方式,显式加载窗体,用该方法即可。

!form = !!FMSYS.LoadForm(!formName)
!form.Method()

传入的参数类型是字符串,值为要调用的窗体名。返回类型是FORM,是窗体对象。

菜单

菜单的主要应用场景是工具栏和弹出菜单
在这里插入图片描述

工具栏

工具栏需要使用BAR来实现。

主菜单

setup form !!yyformtest dialog Size 30 5
  BAR
  !this.BAR.Add('Choose', 'menu1')
exit

子菜单

子菜单需要使用MENU实现。

!menu = !this.NewMenu('menu1')
!menu.Add('menu', 'save', 'submenu')
!menu.Add('Callback', 'Check', '!this.check()')
  • menu1需要和bar中增加的一样,这样就实现了绑定。
  • 如果需要为子菜单增加子菜单,只要在Add方法里,参数1为menu
  • 子菜单可以实现任意层次的嵌套。

开关菜单

开关菜单指的是在菜单前面有一个勾选项,可以选择该菜单是开还是关。例如给增加一个子菜单,并添加方法。当该菜单打开时,显示菜单已经开启,当该菜单关闭的时,显示菜单已经关闭。

// 调用方法时,方法名后面的括号只有单边(,不是正常的()
!togglemenu.add('toggle','on/off','!this.toggle(')

define method .toggle(!menu is menu, !action is string)   
  if !action.eq('SELECT') then       
    !!alert.message('菜单已经开启')    
  else        
    !!alert.message('菜单已经关闭')    
  endif
endmethod

注意:方法的参数表列为固定写法,其中!action存储了开关的状态,如果菜单是打开的,则返回SELECT,关闭的则返回UNSELECT

右键菜单

每个窗口的活动工具栏都可以利用先前定义的菜单作为该工具栏的弹出菜单,弹出菜单调用右键即可调出。

setup form !!yyformtest dialog Size 30 5
  BUTTON .btnApply 'Apply'

  //这里的menu定义和上面的一样
  !menu = !this.NewMenu('menu1')
  !menu.Add('Callback', 'Check', '!this.check()')
  !this.btnApply.SetPopup(!this.popmenu)
exit

SELECTOR

SELECTOR控件可以实现,design explorer的数据结构,然后调用members的方法,实现与members完全相同的效果。

setup form !!yyformtest dialog
  Selector .Members at x 0 y 0 width 35 length 10 database auto
exit

define method .yyformtest()
  !this.Members.callback     = 'CALLIB UMEMBERS $<$$_MEMBERS$>'
endmethod

PMLFileBrowser

封装的一个.NET Browser控件,可以实现文件的选择。

import 'pmlfilebrowser'
using namespace 'Aveva.Pdms.Presentation'
!browser = object PMLFILEBROWSER('READ')
!browser.Show('D:' , '', '请选择图片', false, 'png files (*.png)|*.png', 1)
!this.txtPicturePath.Val = !browser.File()

对象声明的时候,如果是保存文件,参数为SAVE;如果需要打开文件,选择OPEN
show方法的第二个参数,是文件的初始值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值