문제

간단한 질문. 3 개의 구성 요소가있는 패널이 있습니다. 그들 모두는 정렬되었습니다 : = 좋아요. 그러나 문제는 런타임 동안 순서가 DesignTime과 같지 않다는 것입니다.

대신 Alcustom을 사용하여 오른쪽 테두리에서 주문을 강제 할 수 있습니까? D2007을 사용합니다.

도움이 되었습니까?

해결책

당신은 당면한 문제를 많이 드러내지 않지만, 나는 대신 FlowPanel을 살펴 보았을 것입니다.

FlowPanel에서 컨트롤을 떨어 뜨릴 때 새로운 주문 프로퍼 인 '자동'이 나타납니다. 컨트롤이 흐르는 방식을 설정할 수 있으며 컨트롤 사이의 공간을 원한다면 각 컨트롤에 여백을 설정합니다.

약간의 개간 : 새로운 'Order-Property'는 실제로 'ControlIndex'라고하며 객체 검사관의 맨 아래에 나타납니다.

다른 팁

예, 모든 유형의 사용자 지정 정렬을 수행 할 수 있습니다. 컨트롤의 onaligninsertbefore () 및 OnAlignPosition () 이벤트 만 사용하십시오. (Delphi 2007에 존재하지만 게시되지 않아서 객체 검사관의 이벤트 탭에 나타나지 않아도 코드에 할당 할 수 있습니다. 아래의 프로토 타입을 보여주었습니다. 아래의 도움말 파일에 문서화되어 있습니다. taligninsertbeforeevent 및 talignpositionEvent; 당신은 또한 customAligninsertbefe와 onaligninsertbefe를 볼 수 있습니다.)

TAlignInsertBeforeEvent = function(Sender: TWinControl; 
  C1, C2: TControl): Boolean of object;

TAlignPositionEvent = procedure(Sender: TWinControl; Control: TControl;
  var NewLeft, NewTop, NewWidth, NewHeight: Integer;
  var AlignRect: TRect; AlignInfo: TAlignInfo) of object;

문서에는 두 가지 방법에 대한 매개 변수에 대한 꽤 좋은 설명이 포함되어 있습니다.

Delphi 2010에서 이러한 이벤트는 객체 검사관의 이벤트 탭에 게시되어 나타납니다.

그래도 문제를 본 적이 없지만 ... 모든 문제를 Alnone으로 설정하고, 오른쪽 가장자리에서 멀리 이동 한 다음, 정렬을 다시 설정하려고 했습니까? 나타나다?

Demo2를 살펴보십시오 이 다운로드.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top