2010-08-02 2 views
1

나는 창에 TcxGridDBTableView를 가지고 있고, dragmode는 dmAutomatic으로 설정되어있다. 행을 다른 행 위에 드래그 앤 드롭하면 잘 동작합니다. 그러나 창 외부로 행을 드래그 앤 드롭하면 TcxGridDBTableView의 'OnEndDrag'이벤트가 표시되지 않습니다.TcxCustomGrid-TcxCustomGrid를 다루는 방법 개체를 창 외부로 끌면 끌어서 놓기가 가능합니까?

예 :

procedure TfrmMyForm.cxGridDBTableViewEndDrag(Sender, Target: TObject; X, Y: Integer); 
begin 
    ShowMessage('ClassName: ' + Sender.ClassName); 
end; 

나는 그것을 debuggin거야, 그리고 난은 showmessage 줄에 중단 점을 가지고,하지만 난 창 밖에서 행을 삭제할 때, 프로그램은 라인에서 중지 해달라고.

저는이를 구현하기 위해 고속 양자 그리드를 사용하고 있습니다.

답변

0

다른 응용 프로그램으로 드래그 앤 드롭 ("윈도우 외부"라고 가정 함)은 그리 간단하지 않습니다. 내가 찾은 가장 좋은 해결책은 앤더스 멜 랜더의 끌어서 놓기 구성 요소 모음입니다
: 컨트롤에 의해 구현되는 드래그 앤 드롭 드래그입니다 때문에
http://melander.dk/delphi/dragdrop

+0

내가 답변을 주셔서 감사합니다. 그러나 아마도 내 문제는 그럴 것 같아 보인다. drag-n-drop이 성공적으로 완료되었는지 알려주는 플래그가 필요합니다. 왜냐하면 나는 'drop'이 허용되지 않았을 때 드래그하기 시작했을 때의 변경 사항을 취소해야하기 때문에, 예를 들어 윈도우 애플리케이션 외부로 행을 드래그합니다. 나쁜 영어로 죄송합니다. – Haruki

0

이 "창"에 의해 응용 프로그램 창을 의미한다고 가정하면, 즉 -n- 응용 프로그램 내에서만 드롭합니다. 한 응용 프로그램에서 다른 응용 프로그램으로 끌어서 놓기를하려면 OLE 끌어서 놓기 기능을 사용해야합니다. 자신을 구현했는지 (너무 어렵지는 않음) 또는 라이브러리를 사용하여 구현되었습니다.

OLE 끌어서 놓기에 대한 MSDN 설명서가 꽤 좋습니다. 읽기 시작점 :

+0

답을 고맙게 생각합니다. 그러나 아마도 내 문제는 그럴 것 같아 보인다. drag-n-drop이 성공적으로 완료되었는지 알려주는 플래그가 필요합니다. 왜냐하면 나는 'drop'이 허용되지 않았을 때 드래그하기 시작했을 때의 변경 사항을 취소해야하기 때문에, 예를 들어 윈도우 애플리케이션 외부로 행을 드래그합니다. 나쁜 영어로 죄송합니다. – Haruki

관련 문제