如何使用DevExpress LayoutControl的minWidth,minHeight?

时间:2010-08-19 19:30:06

标签: delphi layout devexpress delphi-2007

我已经开始使用DevExpress LayoutControl了。它感觉很强大,但我没有按照我的意愿得到它。我想设置组件的最小宽度和最小高度,因为你不能让对话框变得很小而且看起来仍然很好。同时我想让用户拥有任意大尺寸,让组件具有相同的宽度和高度份额。而且我不想要任何滚动条。我怎么能做到这一点?

还有一件事。由于其他情况,我仍然使用Devexpress的旧版本6.38。是否在最新版本的LayoutControl中修复了许多错误?这可能阻止我吗?

/罗兰

1 个答案:

答案 0 :(得分:1)

我认为你不能在LayoutControl中指定控件的最小高度/宽度。你当然可以使用标准的constraints属性,它会起作用,但看起来很难看。

问题是你究竟想要实现的目标是什么? LayoutControl尝试调整它的控件大小,以便一切尽可能合适。由于许多控件都包含在太小的空间中,滚动条会出现,但还会发生什么呢?

设置可调整大小的布局的关键是调整布局项/组的AlignHorizAlignVert属性。将这些设置为ahClient/avClient以获取可调整大小的控件,例如Memo或Grid。您通常也希望LayoutControls的AutoContentSizes[acsWidth,acsHeight]

说到版本,我建议您升级到最新版本并尝试LayoutControl V2,与v1相比,它具有一些额外的功能,例如支持分割器和标签。

以下是一个逻辑调整大小的简单表单示例,您可以将其粘贴到空表单中:

object dxLayoutControl1: TdxLayoutControl
  Align = alClient
  AutoContentSizes = [acsWidth, acsHeight]
  object Edit1: TEdit
    BorderStyle = bsNone
  end
  object Button1: TButton
  end
  object Memo1: TMemo
    BorderStyle = bsNone
  end
  object dxLayoutControl1Group_Root: TdxLayoutGroup
    ShowCaption = False
    Hidden = True
    ShowBorder = False
    object dxLayoutControl1Group1: TdxLayoutGroup
      AutoAligns = [aaHorizontal]
      AlignVert = avClient
      object dxLayoutControl1Group2: TdxLayoutGroup
        ShowCaption = False
        Hidden = True
        LayoutDirection = ldHorizontal
        ShowBorder = False
        object dxLayoutControl1Item1: TdxLayoutItem
          AutoAligns = [aaVertical]
          AlignHorz = ahClient
          Control = Edit1
        end
        object dxLayoutControl1Item2: TdxLayoutItem
          ShowCaption = False
          Control = Button1
          ControlOptions.ShowBorder = False
        end
      end
      object dxLayoutControl1Item3: TdxLayoutItem
        AutoAligns = [aaHorizontal]
        AlignVert = avClient
        Control = Memo1
      end
    end
  end
end

希望有所帮助