【问题标题】:C++ Builder hide items on Form when editingC++ Builder在编辑时隐藏表单上的项目
【发布时间】:2016-06-04 16:40:56
【问题描述】:

有没有办法在编辑时隐藏表单上的按钮和其他内容?我想做一个非常扩展的界面,在一个地方一次最多可以有几个按钮,所以如果不隐藏其他按钮就不可能像这样工作。 “可见”变量仅在运行程序时才起作用,所以我不知道该怎么做...有什么想法吗?

编辑:你可以让它不可见,不仅发送到后面吗?

【问题讨论】:

  • 听起来您的 UI 太复杂了,或者您在设计时设置了可能应该在运行时动态设置的东西。
  • 当我将表单的 Visible 属性上的组件设置为 false 时,它​​们就会消失。这是使用 FMX,版本 10。
  • 将控件放在面板中。完成这些控件的设计并将面板移出视图(例如设置 control->Left = 3000)。在运行时,将面板重新显示(左 = desired_value)。
  • 但我同意其他人的观点……如果对你来说太拥挤,对用户来说也太拥挤了。

标签: c++builder


【解决方案1】:

默认情况下,控件在设计时是不可见的。要“隐藏”控件,您必须:

  1. 将其从表单中完全删除

  2. 将其物理移动到其父控件的边界之外

  3. 将其放在TPageControl 的TabSheet 上,然后切换到不同的TabSheet。

  4. 也许可以找到(或编写)一个自定义组件编辑器,可以切换控件的设计时可见性(TControl.ControlState 属性中有一个csDesignerHide 标志,可以通过公共TControl.SetDesignVisible() 切换方法)。

【讨论】:

    【解决方案2】:

    正如 Remy 所说,在 IDE 中您不能这样做。当然,您可以在运行时在代码中执行此操作,但这在设计时无济于事。

    我会为所需的每个设置创建不同的框架。您可以单独编辑它们,这大大减少了任何依赖关系。您甚至可以为每个框架提供方法来评估可以从主窗体调用的输入和属性。

    否则,您可以使用 PageControl,并将每个设置放在不同的选项卡上。如有必要,您可以打开 PageControl 的选项卡。这是向导对话框经常做的事情。

    【讨论】:

    • 我知道 Frames,但问题是当您启动新 Frame 时,它​​会创建新窗口。我试图找到任何方法来制作没有新窗口的“框架”,但我无法在任何地方找到它。如果可能的话,我会很高兴知道解决方案:)
    • 在设计器中,它是独立的,但它或多或少可以像一个复杂的组件一样使用。它不是一个窗口。
    【解决方案3】:

    有人为此提供了一个自定义的 TControl 编辑器,显然你必须将它放在一个包项目中并右键单击安装它(首先将 Win32 目标添加/激活到该包项目,否则不会出现安装选项右键):

    https://en.delphipraxis.net/topic/2787-addon-to-hide-single-visual-controls-in-form-designer/?tab=comments#comment-22178

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 2016-08-09
      • 2015-04-26
      相关资源
      最近更新 更多