Delphi 및 FMX로 Android 용 앱을 만들고 있습니다. 버튼의 onclick-procedure에서 동적으로 TPanel (일부 구성 요소 포함)을 만든 다음 TVertScrollBox에 추가합니다. TPanel이 서로 쌓이기를 원하므로 Align 속성을 Top으로 설정합니다.
procedure TMainForm.AddGroupButtonClick(Sender: TObject);
var Group : TPanel;
begin
Group := TPanel.Create(Self);
Group.Parent := Groups; // where Groups is a TVertScrollBox on the form
Group.Align := TAlignLayout.Top;
//Then I create some other components and set their Parent to Group
end;
사용자는 아마도 다른 모든 TPanel 아래에 새 TPanel이 추가 될 것으로 예상 할 것입니다. 그러나 이전에 추가 된 TPanel이없는 경우를 제외하고 모든 새 TPanel은 최상위 TPanel 바로 아래, 즉 위에서 두 번째로 추가됩니다.
그 이유는 무엇이며 이전에 추가 된 모든 TPanel 아래에 새 TPanel을 어떻게 추가합니까?
나는 여기에서 비슷한 질문을 보았지만 그들은 VCL을 사용하고 있었는데, 분명히 변경할 수있는 Top 속성이 있습니다. 그러나 FMX 구성 요소로 작업 할 때 하나가없는 것 같습니다.
새 Firemonkey
패널 을 만들 때 해당 Position
속성은 기본적으로 X=0, Y=0
입니다.
설정 Align := TAlignLayout.Top;
하면 이전에 배치 된 구성 요소와 비교하여에서 이미 패널이 있음을 발견 Y = 0
하고 기존 패널 아래에 새 패널을 압착합니다.
다른 모든 패널 세트 아래에 새 패널을 배치하려면
...
Group.Position.Y := 1000; // any sufficiently large value (bigger than the last panel's Y)
Group.Align := TAlignLayout.Top;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다