2016-09-05 8 views
1

커서가 Timage 구성 요소 위에있을 때만 감지 백스 페이스 키 (이벤트와 같은)를 누를 가능성이 있습니까? 이 바로 가기는 TImage와 관련된 전용 이미지 처리를 트리거해야합니다.백 스페이스 누름 감지

+0

포커스 컨트롤에 입력이 허용되면 어떻게됩니까? –

답변

4

마우스를 이미지에 입력하거나 이미지를 떠날 때 키 누름 감지 이벤트 (OnMouseEnter, OnMouseLeave)를 활성화/비활성화 할 수 있습니다.

당신은 당신의 양식에 (TKeyEvent와 호환)를 BackDetection 기능이 필요합니다 :

procedure MyForm.BackDetection(Sender: TObject; var Key: word; Shift: TShiftState); 
begin 
    if Key = VK_BACK then begin 
    ... 
    ... Your image-processing code 
    ... 
    end; 
end; 

KeyPreviewTrue 것을 요구 않습니다.

그런 다음 이미지를 마우스로 가져 가거나 놓을 때이 이벤트를 설정하거나 사용하지 않도록 설정하십시오.

procedure MyForm.MyImageOnMouseEnter(Sender: TObject); 
begin 
    OnKeyPress := BackDetection; 
end; 

procedure MyForm.MyImageOnMouseLeave(Sender: TObject); 
begin 
    OnKeyPress := nil; 
end; 
+3

또는 키 이벤트를 항상 설정할 수 있으며 마우스가있는 곳을 확인할 수 있습니다. –