【问题标题】:VCL style mac look style designerVCL风格mac外观风格设计师
【发布时间】:2023-03-31 10:04:01
【问题描述】:

最近我一直在对 VCL 样式(用于 Delphi 的 Embarcadero XE2)进行一些研究。 我可以加载和设置样式,这样就可以正常工作了。

目前我正在探索 VCL 样式设计器,我试图弄清楚如何在应用程序文本(标题表格的)在右边。

我的心意已尽,希望有人能给我一些指点。

所以基本上我尝试“模拟”的是 Mac 在 Windows 窗体上的外观。

欢迎任何帮助。

【问题讨论】:

  • 一个简单的解决方法是删除窗口边框并自己添加按钮。
  • 我不确定我是否理解您的意图。能不能说的具体一点??
  • 我无法提供确切的代码,但应该可以执行 Window.Border.Visible = False 之类的操作。然后你可以通过在顶部制作一个带有按钮的栏来制作自己的边框。
  • 嗯,我明白了。这是真正解决问题的一种方法。但我的主要重点是使用 VCL Style Designer 来创建它。可惜我还没有上传图片的声誉。然后我可以上传图片,这样你就可以看到我到目前为止创建的内容。
  • 可能值得重新评估为什么你这样做。试图改变人们期望的行为通常是一个相当糟糕的主意。 mac 和 windows 用户经常不喜欢(并且发现难以操作)他们同行的操作系统是有原因的 - 因为没有什么是他们期望的,也没有按照他们的期望做!如果您使 Windows 应用程序的外观和感觉像 Mac 应用程序,Windows 用户将在很大程度上因此而讨厌您,并且不想也不喜欢使用您的应用程序。我会认真重新考虑这一点。

标签: delphi delphi-xe2 vcl-styles


【解决方案1】:

您要完成的操作与VCL Style Designer 无关,而是您必须创建自定义表单样式挂钩。

按照这些步骤操作。

  1. 创建(并注册)一个从 TFormStyleHook 类继承的新表单样式挂钩。
  2. 覆盖PaintNC 方法以在新位置绘制标题按钮。
  3. 处理WM_NCMOUSEMOVEWM_NCLBUTTONDOWNWM_WM_NCLBUTTONUP 消息以检测标题按钮的状态(热、按下)并触发操作(关闭、恢复、最大化、最小化)。

【讨论】:

  • 好的,感谢您的回答 RRUZ。关于 embarcadero 何时可以在 Style Designer 中实现这样的功能有任何想法吗?
  • 我在回答中所说的这与样式设计师无关。这可以通过自定义样式挂钩来完成。
  • 我知道你的意思 RRUZ。并了解样式设计师的“当前限制”。但我在之前的评论中的意思是,如果 embarcadero 计划实施这样的功能以使其更容易(减少编码)。
猜你喜欢
  • 2011-11-10
  • 2020-09-20
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多