前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >将你的控件做成自响应,少写代码,极速开发

将你的控件做成自响应,少写代码,极速开发

作者头像
加菲猫的VFP
发布2023-10-23 17:09:03
1880
发布2023-10-23 17:09:03
举报
文章被收录于专栏:加菲猫的VFP

我们平常做表单的时候,常常要控制界面的某一些按钮可点击不可点击,有些文本框可输入或只读,常常写下如此的代码。

thisform.text1.readonly=.f.

thisform.text1.readonly=.t.

thisform.btnadd.Enabled=.t. 或.t.

一般写好,不改还好,就是怕的是加减控件,你又得找出控制代码,一行一行添加或清除,老烦人了。

但现在,现在。。。。

但学了自响应之后,这些乱乱的控制代码可以从你的开发中请出去了。

自响应控件可以响应表单的操作状态和权限状态。目前祺佑三层开发框架定义了三种操作状态,三种权限状态。

具体表现为Qiyu_Form_SingleCursor 表单的四个属性

Opcode 属性 0 浏览 1 新增 2修改

Isadd 属性 .T. 允许新增 .F. 不允许

Isedit 属性 .T. 允许编辑 .F. 不允许

Isdel 属性 .T. 允许删除 .F. 不允许

那如何定义自响应控件呢?

首先选择你的制作的自定义控件,添加四个属性opcode,isadd,isedit,isdel

1、init事件添加如下代码

代码语言:javascript
复制
&&向主表单注册自身
Thisform.registerObserver(This)

2、添加一个自定义方法,方法名:UpdateState

代码语言:javascript
复制
Lparameters isadd,isedit,isdel,opcode,ischeck,isprint,iskeep,isud1,isud2,isud3
This.Isadd=isadd
This.Isedit=isedit
This.Isdel=isdel
This.Opcode=opcode
This.Ischeck=ischeck
This.Isprint=isprint
This.Iskeep=iskeep
This.Isud1=isud1
This.Isud2=isud2
This.Isud3=isud3
This.SetState()

3、添加自定义方法:方法名:SetState

代码语言:javascript
复制
If This.Isadd=.T. .And. This.Isedit=.T.
  If Inlist(This.Opcode,1,2)
    This.Enabled=.T.
  Else
    This.Enabled=.F.
  Endif
Else
  This.Enabled=.F.
Endif


根据 this.opcode(状态), this.isadd this.isedit this.isdel等(权限)来启动当前控件的开闭,显示隐藏,只读或编辑

使用方法:

把控件到框架表单,就拥了自动开闭的功能,从此告别,一个一个手动动控制控件的开闭。

读万卷书,不如行万里路,行万里路,不如高人指路。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档