2010-03-08 8 views
1

TListView 및 TPopupMenu가 있는데 TListItem을 마우스 오른쪽 단추로 클릭 할 때 컨텍스트 메뉴를 표시하려고합니다. 구성 요소를 할당하여 "AutoPopup"을 시도했지만 PopupMenu가 오른쪽으로 클릭되었을 때만 원하는 요소가 선택되지 않았습니다. 그래서 "OnMouseDown"을 사용하려고했지만 클릭하고 다시 클릭하여 원하는 항목의 메뉴를 표시해야합니다. 첫 번째 클릭은 항목을 선택하고 두 번째 클릭은 메뉴를 표시합니다. 하지만 한 번의 클릭으로 두 가지 작업 만 수행하면됩니다. 문제에 대한 아이디어가 있습니까?더블 클릭하면 팝업 메뉴가 TListView로 표시됩니다!

감사합니다.

+0

문제가 있다고 생각하지 않습니다. 마우스를 올리면 팝업 메뉴가 표시되는 반면 마우스를 아래로 내려 가면 문제가 발생합니다. 단순히 목록보기의'PopupMenu'를 할당하면됩니다. 내 프로그램에서 보고서보기 스타일의 항목에 대해서도 그렇게합니다. – mghie

답변

0

문제가 해결 자신의 온 클릭 이벤트에서 그들을 해고 할 때 두 가지가 올바르게 설정된 경우

. 예상대로, 나는 TPopUpActionaBar를 사용하고 있었으므로 사용자는 간단한 TPopupMenu를 사용해야합니다. TPopUpMenu를 사용할 때 문제가 없습니다! (내 나쁜 영어 실례!) 감사.

1

가이 코드는 문제를 해결할 수 있다고 생각 :

procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton; 
    Shift: TShiftState; X, Y: Integer); 
begin 
    if Button = mbRight then 
    ListBox1.Perform(WM_LBUTTONDOWN, 0, MakeLParam(Word(X), Word(Y))); 
end; 
+0

적어도 TListBox를 참조하는 경우. 위에서 언급했듯이 TListView는 문제가되지 않습니다. –

+0

TListBox가 없지만 TListView (ViewStyle로 vsReport) Tlistview에서 코드를 테스트 할 것입니다. 고맙습니다. – djiga4me

0

먼저 폼에 TPopUpMenu를 추가하고이에 표시 할 항목을 정의를 (델파이 2010 년에 팝업 메뉴 아이콘을 더블 클릭

두 번째로 TListView의 PopUpMenu 항목을 새로 생성 된 TPopUpMenu로 설정하십시오. 사용자가 정의한 항목을 표시 할 뷰 TListView 당신을 마우스 오른쪽 버튼으로 클릭하고

관련 문제