请先登录 | 注册 |
MYCSG.CN |
■标题: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 毫秒 . |