2016-11-01 2 views
-3

에서 컨트롤의 주문이 나는 패널을 가지고 실시간으로 나는이 패널에 하나 개 이상의 버튼을 추가 : 나는 순서를 변경하여 버튼 패널을 이동할 수 있습니다델파이 - 패널

enter image description here

. 그 (것)들을 이동 한 후에 나는 누구가 어느 위치에 있는지 알아낼 필요가있다.

나는 시도하고있다 : 그들의 이동 한 경우

for i := Pred(panel.ControlCount) downto 0 do 
begin 
    vButtonName := panel.Controls[i].name; 
end; 

그러나이 panel.Controls은 [I] .name을이 구성 요소의 예상 순서를 표시하지 않습니다. 내 문제 야.

답변

2

"left"속성을 사용하여 시퀀스를 찾습니다. Here은 원하는 순서로 버튼을 만들고 왼쪽 속성으로 위치를 결정하는 코드입니다.

+0

감사합니다.하지만 문제는 panel.Controls [i] .name이 해당 구성 요소의 예상 순서를 표시하지 않는다는 것입니다. 이동되었습니다. – giaco

+0

@giaco 단순히 컨트롤을 움직일 수는 없지만 인덱스에 의해 순서대로 정렬되지는 않습니다. 새 목록을 만들고 속성 "left"로 항목을 정렬해야합니다. 내 대답 –

+0

에서 제공 한 링크의 코드를 이해하려고 노력하십시오. 내 대답에 영감을 얻은 적이 있습니다. 버튼 위치를 식별하기 위해 왼쪽 속성을 사용했습니다. 나는 배열을 던져 주문했다. 고맙습니다! – giaco