TListView가있는 양식이 있습니다. 일부 항목을로드하고 잘 표시됩니다. 항목을 탭 (OnClick)하면 항목 세부 정보와 몇 가지 추가 옵션이있는 두 번째 양식을 표시 할 수 있습니다.Firemonkey에서 OnClick과 Swipe를 구분하는 방법 Delphi XE6을 사용하는 TListView Item
그러나 오른쪽 ("삭제"버튼을 활성화하기 위해)을 스 와이프하면 OnClick 이벤트가 발생하고 세부 양식이 표시됩니다. Detail 폼을 닫을 때 (또는 "Back"버튼을 사용할 때), TListView는 이제 Delete 버튼을 디스플레이합니다.
이렇게 짧은 버전은 스 와이프가 완료되었을 때 어떻게 OnClick 이벤트가 실행되지 않게 할 수 있습니까?
플래그를 추가하고 OnDeleteChangeVisible 및/또는 OnGesture에 플래그를 설정해 보았지만 플래그가 설정되지 않은 것처럼 보였습니다. 디버그 모드로 실행하면 이러한 이벤트가 실행되지 않습니다.
var isDelete: Boolean
procedure TfrmTaskList.lvTaskListDeleteChangeVisible(Sender: TObject;
AValue: Boolean);
begin
if (AValue = True) then
isDelete := True
else
isDelete := False;
end;
procedure TfrmTaskList.lvTaskListGesture(Sender: TObject;
const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
if (EventInfo.GestureID = sgiRight) then
begin
isDelete := True
end
else
begin
isDelete := False;
end;
end;
어떤 도움, 조언, 자원이라도 대단히 감사하겠습니다. 감사합니다
약간 다른 질문,하지만 궁극적으로 동일한 문제. 참조 : http://stackoverflow.com/questions/24681940/scrolling-vs-selecting-delphi-xe6 – ThisGuy
@ThisGuy에게 응답 해 주셔서 감사합니다. 비슷한 (그리고 그 해결책을 임시 방편으로 구현할 수도 있습니다.)하지만 탭과 스 와이프 간의 시간 차이는 매우 짧으며 안정적으로 계산하기가 어려울 것이라고 생각합니다. 또한 길게 누르면 마우스를 길게 누르기 전에 긴 탭이 작동합니다. 지금 당장 긴 탭을 사용할 필요는 없지만 두 개가 아닌 사용 가능한 모든 제스처를 활용하기 위해보다 안정적인 솔루션을 찾는 것이 좋습니다. – JFish