请先登录 | 注册
MYCSG.CN
APP级别全局变量或SUB函数在Starter里,其他页面可调用 - 文章首页返回版区
■标题:APP级别全局变量或SUB函数在Starter里,其他页面可调用
■作者:IPSC [2025/3/23 0:16:00]
Starter函数的调用

加上starter模块名称,直接调用

注意:函数不用加public,也不能加private




比如在Starter里有个 sub abc(msg as string),在其它页面里可直接调用  abc("123")







-------------------




页面模块(b4xpage)调用页面模块

1.定义被调模块变量

2.设置页面对象

3.根据变量名称调用对象的函数,类似调用starter函数





Private Sub lbTo2_Click'这是B4XMainPage里sub调用PageCam页面函数 sub opencam的例子

'1.定义被调模块变量

Dim aPg As pageCam'大小写问题 pgPageCam


'2.设置页面对象

Dim xx As Boolean = B4XPages.GetManager.mstackorpageIds.Contains("pgpageCam")


'判断对象apg是否存在

If xx Then

'取页面对象

aPg= B4XPages.GetPage("pgpageCam")

else

'对象不存在,载入对象

aPg.Initialize

B4XPages.Addpage("pgpagecam",apg )

End If


If aPg.getcreated() Then' 调用getcreated模块成功就

aPg.opencam'调用函数

End If


B4XPages.ShowPage("pgpageCam")'跳转

End Sub


Public sub getCreated() AS Boolean'这个函数在PageCam页面里

Log("---pageCam.getcreated()")

Return created

End Sub


Public sub opencam

Log("---opencam")

cam.Initialize(pnlcamera)

Setstate(False,False,False)

OpenCamera(frontcamera)

pnlBackground.Visible=False

End Sub

-------------------



标准类模块(standard class)调用页面(b4xpage)模块











标准类模块是一些算法函数,要互页面元素进行交互时











1.前缀方法:

在标准类的initialize函数中定义页面模块的对象和函数前缀

页面模块调用标准类的方法时传入自己和回调函数的前缀

callsub






public sub callPageFunc'在upload里

CallSub(Callback,Event&"_done")'前缀并成up_done后,调用但不能传参数

CallSub2(Callback,Event&"_failure","来自upload的消息")

'上面这种可以传一个参数,要传两个参数用callsub3,如果更多就把参数放在一个自定义类型变量里,用callsub2传送

End Sub









Private Callback As Object‘在globals里定义

Private Event As String'为了传值到Initialize后在本标准模块里不同SUB里都可以调用到,如callPageFunc






Public Sub Initialize(CallbackModule As Object,EventName As string)'这个在upload里接收传送,前面是B4XMainPage,后面是前缀up

Callback= CallbackModule

Event = EventName

...

End sub






------------------------------




2.直接调用法

Callsub








----------------------------




3.参数传递,根据参数的个数使用不同的callsub

Callsub-没有参数

Callsub2-一个参数

Callsub3-2个参数

如果参数是对象,则可以有任意多参数

注意,跨模块调用的函数必须得是public类型的


'直接调用

Dim apg AS B4XMainPage

aPg=B4XPages.GetPage("mainpage")

CallSub2(apg,"setMsg","自upload的消息")





回复/版区/上篇/下篇/发贴/仅文字/HTML
【倒序/最近21条回复】(暂无)
(查看完整版网页)



短讯|首页|登录|算法|电脑版 .
DK MiniBBS Plus v2.0
mm0759.com
31 毫秒 .