Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Delphi中的TPanel数组不显示_Arrays_Delphi_Show_Tpanel - Fatal编程技术网

Arrays Delphi中的TPanel数组不显示

Arrays Delphi中的TPanel数组不显示,arrays,delphi,show,tpanel,Arrays,Delphi,Show,Tpanel,所有512个都在创建中,它们只是不可见的。您需要将ParentBackground设置为false: for y:=32 downto 1 do begin for x := 1 to 16 do begin PanelArray[x,y]:=TPanel.create(self); PanelArray[x,y].parent:=self; PanelArray[x,y].Color:=clBlack; PanelArray[x,y].Enabled:=tr

所有512个都在创建中,它们只是不可见的。您需要将ParentBackground设置为false:

for y:=32 downto 1 do begin
  for x := 1 to 16 do begin
    PanelArray[x,y]:=TPanel.create(self);
    PanelArray[x,y].parent:=self;
    PanelArray[x,y].Color:=clBlack;
    PanelArray[x,y].Enabled:=true;
    PanelArray[x,y].Show;
    PanelArray[x,y].BevelOuter:=bvNone;
    PanelArray[x,y].OnClick:=Panel1Click;
    PanelArray[x,y].Visible:=true;
    PanelArray[x,y].width:=10;
    PanelArray[x,y].height:=10;
    PanelArray[x,y].Refresh;
  end;
end;

我还删除了您问题中出现的各种不必要的代码行。例如调用Show和Refresh,设置Enabled和Visible。

代码看起来应该可以很好地显示它们。不确定为什么需要在表单的左上角将512个面板层叠在一起,但这段代码就是这么做的。还有,你的问题是什么?你是通过试错来编程的。退后一步。使用Show并将Visible设置为True是毫无意义的。这也是同样的道理。在任何情况下,默认情况下控件都是可见的。调用刷新没有任何意义。将面板相互叠放似乎没有必要。也许真正的问题是,你不能使一个主题面板是任何颜色以外的主题。但是你没有问任何问题,所以我们不知道你想要什么。这个问题是不是在设置颜色属性时自动出现的。不,不是。试试看。我只是在评论之前试了一下。我更改了Color属性,ParentBackground属性本身切换为False。但是,OP并没有说明他们使用的是哪个版本的Delphi,所以可能是这样。我用的是德尔福10西雅图。从我记事起,它就一直是这样工作的,甚至是Delphi7。@Jerry-我正在使用柏林更新2。您正在使用什么?看起来Delphi设计器会自动将其切换为ParentBackground=false。它不会在运行时发生。
for y:=32 downto 1 do begin
  for x := 1 to 16 do begin
    PanelArray[x,y]:=TPanel.create(self);

    ///////////
    PanelArray[x,y].ParentBackground := false;
    ///////////

    PanelArray[x,y].parent:=self;
    PanelArray[x,y].Color:=clBlack;
    PanelArray[x,y].BevelOuter:=bvNone;
    PanelArray[x,y].OnClick:=Panel1Click;
    PanelArray[x,y].width:=10;
    PanelArray[x,y].height:=10;
  end;
end;