我的应用程序有一个表单 - 用于设计其他表单并包含一个Object Inspector(bas ascii art follow)
-----------------------
|obj | design forms |
|insp| here |
| | |
-----------------------
因此,应用程序的主窗体包含对象窗体和可放置组件的另一个窗体(顶部还有一个工具栏用于选择组件,但我没有显示它。)
现在,如果我将主窗体放大,我希望扩展内容以适应它...
-------------------------------
|obj | design forms |
|insp| here |
| | |
| | |
| | |
-------------------------------
所以我的“表单设计器”表单有Align := alClient;
但是,如果我在其上放置一个组件,那么它会与边缘重叠......
-------------------------------
|obj | design forms |
|insp| here -----------
| | |component|
| | -----------
| | |
-------------------------------
当然屏幕显示
-------------------------------
|obj | design forms |
|insp| here -----|
| | |comp|
| | -----|
| | |
-------------------------------
我想要一个自动滚动条。
但是,似乎Align := alClient;
会覆盖AutoScroll:= true;
知道如何解决这个冲突吗? 1)设计师区域应缩小和增长,当主要形式调整大小时,总是填充主要形式的右侧部分 2)如果放置的元件会悬挂在设计师形状的边缘上,那么它应该生长滚动条
或我完全忽略了这一点?我有处理组件放置的代码 - 如果我需要添加滚动条,我应该在那里检查吗?
答案 0 :(得分:1)
我认为一个相对简单的解决方案是将表单的Align
切换为alNone
,并在父表单的resize事件上定位和调整它的大小。大概你在那里有一个分裂器,你也需要听一些大小的事件。
只要您只有检查员和设计表格,那么这是一个非常简单的实施方案。如果你有更多的工具窗口那么它会变得更加棘手,但基本的想法可以扩展。