Delphi / FMX : 위에서 두 번째 대신 이전에 추가 된 모든 상단 정렬 구성 요소 아래에 동적으로 생성 된 상단 정렬 구성 요소를 추가하는 방법은 무엇입니까?

사라

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관