用于Sheridan 3d控件的原生VB 6替换(如ssCommand,ssCheck等)

时间:2009-05-12 18:49:09

标签: vb6

我正在开发一个VB6应用程序,我想摆脱旧的Sheridan控件,并用内置的VB6控件替换它们。

但是,其中一些控件有一些不错的属性,比如ssCommand按钮上的ForeGround。标准VB6命令按钮没有前景属性。

我知道VB6可能有许多我可以启用的其他控件,但我不清楚哪些是相当“标准”(即不是第三方控件)。我想让这个应用程序尽可能保持简单,而不是创建依赖项。 (是的,我知道用于VB6的任何组件都有很长一段时间的感觉。我只是期望从内置的VB6控件获得更高级别的兼容性,因为它可能使用得更多,从而“捣乱”更多而且它的缺陷会更为人所知。

有什么建议吗?

7 个答案:

答案 0 :(得分:3)

在我看来,应该删除threed32.ocx(Sheridan SSControls),因为它有很多问题。它是no longer supported,所有控件grab the focus when made visible包括面板和框架(!),很难升级到VB.NET - 还有更多。对于我的公司来说,这些强大到足以超过它提供的额外功能 - 我们将它从我们的所有程序中删除。

有些讨论过于悲观恕我直言。 VB6还没有放弃 - 我们不是all doomed - 但毫无疑问,我们将不得不在一天内升级代码。 Microsoft say

  

支持VB6运行时   Windows Vista的完整生命周期,   Windows Server 2008和Windows   7,这是五年的主流   支持随后五年   延长支持。

微软仍然支持他们的一些VB6控件。 检查 online list并仅使用支持的控件。这些是Clay在原始问题中寻找的标准,经过测试和支持的控件。如果要使用第三方组件,请检查供应商是否仍支持它们。我同意你应该总是仔细考虑在引入依赖项之前你获得了多少好处,这可能是一个支持头痛的问题。如果使用特殊组件,请尝试将它们包装在抽象层中。如果您需要更换它们,可能会在以后节省一些痛苦。除了你真正需要的功能外,你可以隐藏所有奇特的功能。

最后一句话 - 不要在SSCommand中使用ForeColor属性。没有相应的BackColor属性,因此您无法保证您的特殊前景色与系统背景“按钮面”颜色形成对比。就像Raymond says

答案 1 :(得分:2)

有时候一点点聪明才智会有很长的路要走。例如,我希望我的VB6命令按钮具有自定义背景和前景色,即使这违反了“Windows标准外观”;但是,由于我的项目不是商业性的,我还没准备好为这个功能投入大量资金。所以我尝试了一些东西,最后确定了对我来说是一个非常可行的解决方案:我用标签控件覆盖我的按钮,现在有多色按钮,看起来绝对真实。我可以以编程方式控制按钮颜色,以反映各种操作状态,甚至超越简单的“单击/不点击”组合。我的一个应用程序使用一组五个按钮,这些按钮根据组合的按钮值采用各种颜色。

答案 2 :(得分:1)

我认为将应用程序保持为“普通香草”是一个值得的目标。当然可以简化部署。

我认为找到VB6标准组件的最佳方法是在干净的机器上安装VB6(加上服务包)。所有可用组件都是标准组件。

如果您无法执行此操作,请为项目中的每个选中的组件或参考,研究引用的文件(dll,ocx等)。

答案 3 :(得分:1)

在这种情况下,你正在进行一场艰苦的战斗。试图消除对长死组件的依赖可能是一个好主意,但在这种情况下,你已经处于废弃技术。我很清楚,用更现代的技术(EG,.NET)重建应用程序是不可行的,因此为您提供了一组有限的选项。

  1. 将Sheridan控件替换为最接近匹配的现有VB6控件,然后相应地更新代码。这将是一个错综复杂,困难的过程,你认为在许多情况下不会有匹配是正确的--Sheridan(现在的Infragistics)通过提供VB6上没有收集的UI功能来建立他们的业务。在许多情况下,您的UI必须经过严格调整以支持此功能。
  2. 考虑自己在VB6中编写“足够好”的控件版本,甚至是.NET(后者使用this StackOverflow question的建议)。
  3. 考虑用(可能很久以来被遗弃的)开源VB6控件替换这些控件。谷歌将成为你的朋友。我推荐这条路线的原因是多年来在ActiveX中已经表示了很多UI元素,作为开源 - 如果它们是开源的,你至少可以“支持自己”。
  4. 我知道你要进行普通的开箱即用VB6部署,但对于某些UI元素,这可能不太可行。如果你可以将你的用户界面重建为#1规格,那就去吧,但是你可能有很多工作要做,因为可能是时候考虑在现代的支持平台上进行热情和重建。

答案 4 :(得分:1)

我已经完成了这个,你会很长时间,恕我直言,结果并不是很满意。

无论如何,VB6不能成为长期解决方案。为什么不留在那里?是的他们被遗弃了,但是我用它们并且从来不需要支持。 (另外,在第一次购买之后,它就变成了地狱。)我的经验是,它们非常可靠。我会选择它,如果你有现场问题,请提供现场解决方法。

答案 5 :(得分:0)

我不同意你的推理。人们可能期望得到更好的支持,那些人的生活取决于你是一个快乐的顾客。

根据VB6销售的任何供应商很可能会很快破产。

答案 6 :(得分:0)

为什么要这么麻烦?如果您的产品有效,请不要担心。我发现Sheridan控件非常坚固。如果您没有遇到任何问题,请不要管它们。