【问题标题】:How do I draw a line on a Lazarus form?如何在 Lazarus 表格上画一条线?
【发布时间】:2013-08-12 07:57:14
【问题描述】:

我经常使用 TPanel 或 TGroupBox 对表单控件进行分组。

现在我只需要画一条直线,比如 Panel 或 GroupBox 的边框。

如何在 LAZARUS 上执行此操作?

提前致谢!

注意:该技术必须适用于 Linux 和 Windows

【问题讨论】:

  • 您能否更具体一些,或者使用图形编辑器模拟您想要的内容?有关可能的想法,请参见此处:stackoverflow.com/questions/813693/how-to-draw-on-a-tpanel。但不清楚这是否是您在不了解上下文的情况下应该做的事情。
  • 以TPanel为例。它在 4 个边上绘制了一个漂亮的边框。我只想要一面。换句话说,我只想要一条线。该行必须在表格上。例如,我可以有两个文本框,一个在另一个下方,并将行作为分隔符。但是这条线必须看起来像 TPanel 的边框。我希望这很清楚:)
  • 作为光线路分离器,您应该使用TBevelShape 设置为bs...Line 形状,其中... 代表TopLeftBottomRight) 或 TDividerBevel 组件。它们是为此目的而设计的,而不是直接在表单上绘制,您可以将它们与其他组件一起选择并在设计时将它们移动到表单上。但是,如果您真的想展示如何在表格上绘图,请通过评论通知我,我会给您发布一个简单的示例。
  • @TLama 我认为您的方法也不错。请将其发布为答案。

标签: drawing lazarus


【解决方案1】:

这是我最终完成的,但我不确定这是否是正确的方法,所以我不会接受我的答案。如果有其他人可以指出任何问题,请告诉我。我也发现这很简单:)

  1. 在表单上放置一个 TGroupBox。
  2. 将 Caption 属性留空。现在它应该看起来像一个只有边框的面板。
  3. 使用鼠标将底部边框向上拖动。现在它看起来像一条线。

好吧,我个人认为这种方法效率不高,因为它会占用比真正的直线更多的内存空间。无论如何,到目前为止它似乎对我有用:)

这是屏幕截图 - 向下看(就在最后一个文本框的上方)。唯一的问题是在线条的两侧,它显示线条弯曲。我认为我应该正确设置属性而不是用鼠标拖动。

【讨论】:

  • 我还看到有些人放置 TPanel 并调整其大小,就像使用组框一样,但例如当标题为空时,组在上面的 Windows XP 和 Vista 上具有不同的外观。面板没有这个问题,但是不需要这个解决方法,而有一个组件就是为了这个目的;-)
【解决方案2】:

作为光学线路分离器,您应该使用 TBevel 组件并将 Shape 属性设置为以下值之一 bsTopLinebsBottomLinebsLeftLinebsRightLine,具体取决于您当前使用的线路需要并将其调整为更小的尺寸(在您的情况下,您可以使用 bsTopLinebsBottomLine 并垂直调整斜角的大小):

或者您可以使用称为TDividerBevel 的特殊组件,除了单行之外,该组件还为该光分频器添加了一个标题:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 2017-04-02
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多