问题描述
我想在我的 OpenEdge Progress-4GL 环境中使用标签条,但我无法让它工作。
“没问题:Progress 网站上有一个示例。”,您可能会说,实际上在 this URL 上有一个标签条示例(您可能需要下载提到的"TabStrip_sample.zip"),其中一个 Listview 放置在一个选项卡上,而 Treeview 放置在另一个选项卡上。 (不要害怕:zipfile 只包含源代码、位图和自动创建的 *.wrx
文件,不会损害您的计算机)
现在的问题是:他们到底是怎么做到的?
进入文件“dbtest.w”,让我们在设计时(调整列表视图大小后)查看两个选项卡:
很明显,所有组件都放在 TabStrip 组件上,因此选项卡和组件之间的链接应该在运行时完成(就像 URL 中提到的那样),但这里有一个问题:
代码中似乎没有任何事件处理程序 ON ... CFTabStrip
或任何内容。CFTabStrip
的属性编辑器中提到的键(“Db_tbl”和“Db_sch”)与单个标签页的索引(1 和 2)或索引(1 和 2)在代码中无处可见。
谁能解释一下他们是怎么做到的?
提前致谢
解决方法
“魔法”在 PROCEDURE CFTabStrip.TabStrip.MouseDown
中,它检查水平位置 (x) 是指第一个标签还是右侧标签,然后隐藏/显示其中一个。
相当笨重,但是如果您查看标题,就会发现这个示例是近 20 年前创建的,用于与 Progress 8 配合使用。