首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi XE中的GridPanel问题

Delphi XE中的GridPanel问题
EN

Stack Overflow用户
提问于 2018-10-11 22:42:00
回答 1查看 417关注 0票数 2

GridPanel有问题!我做错了什么吗?第2列的第一行是调整窗体大小的错误。使用Delphi XE 6和10.2.2进行了测试!在表单中放置一个TGridPanel,并将"Align“设置为"alClient”。启动窗体并调整窗体大小。

尝试以下代码:

代码语言:javascript
复制
procedure TForm5.Button1Click(Sender: TObject);
var
  Col,Row: Integer;
  CI: TControlItem;
  Panel: TPanel;
  Rows, Cols: Integer;
begin
  GridPanel1.RowCollection.BeginUpdate;
  GridPanel1.ColumnCollection.BeginUpdate;
  GridPanel1.ColumnCollection.BeginUpdate;

  GridPanel1.RowCollection.Clear;
  GridPanel1.ColumnCollection.Clear;

  Rows := 6;
  Cols := 4;

  for Row := 1 to Rows do
  begin
    with GridPanel1.RowCollection.Add do
    begin
      SizeStyle := ssPercent;
      Value := 100 / Rows;
    end;
  end;

  for Col := 1 to Cols do
  begin
    with GridPanel1.ColumnCollection.Add do
    begin
      SizeStyle := ssPercent;
      Value := 100 / Cols;
    end;
  end;

  for Row := 0 to GridPanel1.RowCollection.Count - 1 do
  begin
    for Col := 0 to GridPanel1.ColumnCollection.Count - 1 do
    begin
      Panel := TPanel.Create(Self);
      Panel.Parent := GridPanel1;
      CI := GridPanel1.ControlCollection.Add;
      CI.Column := Col;
      CI.Row := Row;
      Panel.Caption := 'Row ' + Row.ToString + ' Col ' + Col.ToString;
      CI.Control := Panel;
    end;
  end;
  GridPanel1.ColumnCollection.EndUpdate;
  GridPanel1.RowCollection.EndUpdate;
  GridPanel1.ColumnCollection.EndUpdate;
end;
EN

回答 1

Stack Overflow用户

发布于 2018-10-11 23:45:50

正如Tom Brunberg所指出的,设置Panel.Parent会将它们放在控件集合中,并对其进行管理。

代码语言:javascript
复制
  for Row := 0 to GridPanel1.RowCollection.Count - 1 do
  begin
    for Col := 0 to GridPanel1.ColumnCollection.Count - 1 do
    begin
      Panel := TPanel.Create(Self);
      Panel.Parent := GridPanel1;
      Panel.Caption := 'Row ' + Row.ToString + ' Col ' + Col.ToString;
    end;
  end;

您的代码使集合以48个控件结束,而不是24个。

代码语言:javascript
复制
form1.Caption := 'ControlCollection.Count:' + IntToStr(GridPanel1.ControlCollection.Count);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52762869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档