DAVE SDK 4.1.2 Help content (翻译)——MF
??
MF 声明: MF MF( ??? Closure function, ??? classreturnType )????????????????????? 描述: 一个标准的APP需要一些从GUI上获取输入值的逻辑,用他们计算出另外的数值传递给template文件或者显示在GUI上另外的窗体部件上。 这可以通过MF函数来实现(事实上MF并不是一个函数而是一个闭包,例如一个构造函数的函数)。这种特殊的类型需要与Groovy的闭包区分。
? Execution context: Instance constructor ? 例子: 在这个例子里我们的“DEMOAPP”有两个窗体元素:一个GLabel和一个GCheck。GLabel的可见属性可以被MF设置和更新。在这种情况下当我们按下check box label 变得不可见。 void DEMOAPP(DaveEnv daveEnv){
??? glabel_1.visible = MF(
??????? {???????????????????? // The code between ..
??????????? gcheck_1value??? // .. braces is known ..
????????},??????????????????? // .. as the "Closure"
??????? Boolean?????????????? // This is the "class" return type
??? )
}
MF 函数的执行方式: 在实际运行时DAVE?用一种特殊的方式来执行MF,与电子表格的执行方式相似。例如Microsoft Excel 文件。 我们把GUI中直接或间接变化的变量称为MVariables,就是MF中关联的变量。MVariables就像电子表中的单元格,他们可以包含常量或函数,常量就像一个没有输入值的函数。 ? 定义: Free MVariable: 包含常量的MVariable 或没有输入变量的MF函数 Non-free MVariable: 有输入值的 MF函数 ? MVariable 属性: 1. 如果你读取Non-freeMVariable你会得到函数值的更新。 2. 不可以更改"non-free"MVariable 的值或函数表达。 3. 如果你更改Free MVariable ,所有的于它相关的Non-free MVariable会由从属关系树向下递归直到所有受到影响的MVariables更新。 4. 不能做循环引用。 5. 所有APP GUI 变量是MVariables。 6. 如果更新变量相同MVariables将不会更新。 7. MVariables可以在APP 构建时设定,但在MF 函数中只可读,应为它会自动更新。 ? ? an example of MVariables dependency tree: MVariables 类型: 每一个 GUI Widget 有多种变量属性,但在于GUI交互时只有MVariables 导出的属性可以被控制。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |