我正在使用delphi开发一个新的应用程序.我有一个名为MainForm的表单.MainForm有3个面板:Panel1,Panel2和Panel 3.面板按照从表格顶部到表格底部的顺序插入.Panel1 Align属性设置为alTop,Panel3 Align属性设置为alBottom.Panel 2 align属性设置为alClient.我在Panel2上有一个DBGrid.
问题是当用户在运行时调整表单大小时,DBGrid大小不受影响.当我更改面板2和面板3的顺序时,DBGrid的大小会随着用户更改表单大小而更改.
我想知道是否可以将面板2放在窗体的中间,并且还可以在用户更改窗体大小时更改DBGrid?
在Delphi 7中对我工作正常.你没有这么说,但我假设你设置DBGrid.Align属性alClient,不是吗?
设置DBGrid.Align属性的替代方法,您可以设置DBGrid.Anchors为[akLeft,akTop,akRight,akBottom](即所有四个都是true).
关于两个DBGrids的评论后编辑
如果您希望两个DBGrids都使用表单调整大小,那么我建议您跳过Panel3,将两个DBGrid置于Panel2(未对齐)并将以下OnResize事件添加到表单中:
procedure TForm1.FormResize(Sender: TObject);
begin
DBGrid1.Left := 0;
DBGrid1.Width := Panel2.Width -1;
DBGrid1.Top := 0;
DBGrid1.Height := Panel2.Height div 2-1;
DBGrid2.Left := 0;
DBGrid2.Width := Panel2.Width -1;
DBGrid2.Top := Panel2.Height div 2;
DBGrid2.Height := Panel2.Height div 2-1;
end;
Run Code Online (Sandbox Code Playgroud)
通过上述内容,网格的高度在形状调整大小时具有相同的垂直尺寸.
| 归档时间: |
|
| 查看次数: |
3975 次 |
| 最近记录: |