【问题标题】:form:Transparent, Control on form:non Transparent?表单:透明,表单控件:非透明?
【发布时间】:2014-10-01 11:02:22
【问题描述】:

如何在不影响表单控件的情况下更改表单的 alphablend?

德尔福 XE7

【问题讨论】:

  • AFAIK 这是不可能的表格字母混合。我知道的唯一解决方案是复制背景,对其进行更改并将其绘制到您的表单上,使其看起来像半透明。
  • 我在使用两个表单之前做过类似的事情。顶部的一个表单,带有用于所有背景的透明度的非字母混合控件。然后将其显示在与字母混合的另一种形式的固定相对位置中。不幸的是,我认为我不再拥有该代码,但您可能会发现这是一种有效的方法。
  • 如果您正在搜索类似imgur.com/8ImgFIO 的内容,那么它的答案将非常广泛,因为它是分层窗口的组合,具有自己的组件回调以在分层位图上绘制其他形式使用区域,放置在主窗体的 Move(var Message: TWMMove) 中。
  • 此链接 (imgur.com/8ImgFIO) 与我的问题无关。请看上图!谢谢

标签: delphi delphi-xe7


【解决方案1】:

解决此问题的一种方法是使用Multi-Device Application(如果无法使用VCL)。

如果您需要留下透明的TForm,只需更改属性Transparency = True。

如果您需要保留一个半透明的组件,所有组件都具有Opacity 属性,可以在 0 和 1 之间分配一个更透明的值,其中 0 更接近该组件。

例如,您可以将控件放在TLayout 中,并根据需要更改它的Opacity,并且对其他组件没有影响,反之亦然。

【讨论】:

    【解决方案2】:

    其实这个问题的答案可能很简单...(仅适用于 Windows)

    JEDI VCL 库有一个组件 (TJvTransparentForm),它允许您获取 Alpha 混合的 PNG 图像(即上图中显示的灰色背景)并使用它来制作表单控件。图片实际上存储在 TImage 中,您需要将“图标”放在图像本身上。然后只需响应鼠标在 TImage 上的点击。

    你有你想要的(也许?)。

    如果您足够狡猾,您甚至可以跟踪鼠标移动并更改图像以使鼠标悬停的正确“按钮”发光。

    【讨论】:

      猜你喜欢
      • 2016-02-15
      • 2019-07-27
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多