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;
답변
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].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;
또한 질문에있는 다양한 불필요한 코드 줄을 제거했습니다. Show
및 Refresh
을 호출하고 Enabled
및 Visible
을 설정하는 것.
이것은 '색상'을 설정할 때 자동으로 발생합니다. 재산. –
아니요. 시도 해봐. –
내가 해설하기 전에 해봤 다. 'Color' 속성을 변경하고'ParentBackground' 속성을'False'로 변경했습니다. 그러나 다시, OP는 그들이 사용하고있는 델파이의 버전을 말하지 않기 때문에 그럴 수도 있습니다. 나는 Delphi 10 Seattle을 사용하고 있습니다. 델파이 7조차도 기억할 수있는 한 그런 식으로 일했습니다. –
- 1. 배열이 열로 표시되지 않음
- 2. 두 배열이 일치하고 표시되지 않음
- 3. JSON 다차원 배열이 표시되지 않음 ('배열이 정의되지 않음')
- 4. PHP 배열이 표시되지 않음 - MySQL 값 제한
- 5. TRadioGroup과 같은 TPanel의 자막?
- 6. 배열이 멋지게 표시되지 않습니다.
- 7. PHP 배열이 표시되지 않습니까?
- 8. PHP 배열이 평가되지 않음
- 9. 배열에서 범위로 셀에 쓰기 : 배열이 범위에 완전히 표시되지 않음
- 10. 렌더링 된 경우에도 관측 가능한 배열이 녹아웃으로 표시되지 않음
- 11. PHP : 배열이 값을 유지하지 않음
- 12. 무작위 배열이 일치하지 않음
- 13. 배열이 전파되지 않음
- 14. 정렬 배열이 작동하지 않음
- 15. 배열이 잘 작동하지 않음
- 16. php 배열이 작동하지 않음
- 17. MASM 배열이 루핑되지 않음
- 18. jquery 배열이 같지 않음
- 19. 배열이 증가하지 않음
- 20. JavaScript 배열이 반복 가능하지 않음
- 21. PHP 배열이 테이블에 표시되지 않습니다.
- 22. 애플릿에 문자열 배열이 표시되지 않습니다.
- 23. JOptionPane에 문자열 배열이 표시되지 않습니다.
- 24. C# 배열이 올바르게 표시되지 않습니다.
- 25. JS 배열이 제대로 표시되지 않습니까?
- 26. FileInfo 배열이 DataList에 표시되지 않습니다.
- 27. 배열이 전체 요소를 반환하지 않음
- 28. 배열이 올바른 값을 반환하지 않음
- 29. 자바 스크립트 배열이 작동하지 않음
- 30. DataTable 항목 배열이 할당되지 않음
코드가 올바르게 표시되어야하는 것처럼 보입니다. 왜 폼의 왼쪽 위 모서리에 서로 겹쳐진 512 개의 패널이 필요한지 잘 모르겠지만이 코드로 수행 할 수 있습니다. 또한, 귀하의 질문은 무엇입니까? –
시행 착오로 프로그래밍하고 있습니다. 한 걸음 물러서 라. Pointless는'Show'를 사용하고'Visible'을'True'로 설정하십시오. 그것은 똑같은 일을합니다. 어쨌든 컨트롤은 기본적으로 표시됩니다. '새로 고침 '을 호출하면 아무런 효과가 없습니다. 패널을 서로 겹쳐 놓는 것은 불필요한 것처럼 보입니다. 아마도 진짜 문제는 테마 패널이 테마의 색상이 아닌 다른 색상이 될 수 없다는 것입니다. 그러나 당신은 질문을하지 않았으므로 우리는 당신이 원하는 것을 정말로 알지 못합니다. –
이 질문은 http://stackoverflow.com/questions/3778161/delphi-2009-create-a-tpanel-at-runtime-and-change-its-color의 속입니다. –