2009-08-13 4 views

답변

1

은 예전에 내가 기억하는 경우 올바르게 델파이의 최신 버전으로 업데이트 너무 어렵지 않았다 및 다중 선택 지원하는 것으로, handles라는 구성 요소를 사용했다.

+0

이 구성 요소를 사용하고 일부 변경 사항과 함께 다중 선택을 추가했습니다. 시각적 버그는 컨트롤 아래에있는 마우스 선택 사각형 (부모 캔버스에 페인트하기 때문에)과 실제 컨트롤의 오프셋은 양 축에서 +2 픽셀입니다. 감사합니다. – pani

2

더 간단한 방법을 찾을 수 없다면 언제든지 수동으로 수행 할 수 있습니다. 선택한 모든 컨트롤의 목록을 유지하십시오. 끌기 작업이 시작되면 다른 목록을 만드십시오.이 목록에는 각 컨트롤의 Top 및 Left 속성이 마우스의 위치에서 얼마나 멀리 떨어져 있는지 나타내는 TPoint 값이 있습니다. 그런 다음 사용자가 컨트롤을 드래그하면 선택한 컨트롤이 마우스 포인터의 적절한 상대 위치에 유지되도록 계속해서 업데이트됩니다.

+1

마스터 컨트롤의 델타 값만 필요하지만 필자는이 델타를 다른 컨트롤에 적용하고 적용 할 것입니다. 따라서 control1이 3 픽셀 씩 왼쪽 아래로 바뀌면 controlN.Left : = controlN.Left + DeltaX; controlN.Top : = controlN.Top + DeltaY; 이 테스트를 일부 수행했지만 마스터를 이동하는 동안 나머지 컨트롤을 이동할 수 없습니다. – pani

0

commercial solution 어때요? 스크린 샷은 정렬 도구를 보여 주며 다중 선택을 지원합니다.

+0

이 라이브러리는 내가 처음 보았지만 이미 대부분의 기능을 코딩했기 때문에 직접 구현하기로 결정했습니다. – pani

3

또 다른 상용 솔루션은 DevExpress : LayoutControl입니다. 드래그 앤 드롭, 그룹화, 런타임시 구성 요소의 전체 재정렬, 숨기기 및 추가가 가능합니다.

+0

정말 제멋대로의 공급 업체, 특히 DevExpress를 사용하여 간단하게 잠그고 싶지는 않습니다. – pani