2015-01-21 4 views
0

OS X Yosemite에서 Lazarus 1.2.6을 사용하고 있습니다. 내 문제는 모든 객체에서 TabStop을 사용하지 않도록 설정할 때 발생하는 문제입니다. 원형 탭), # 9 (탭)을 사용하면 작동하지 않습니다. 다른 키와 함께 작동합니다.Lazarus OS X의 OnKeyPress

procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: char); 
begin 
    if Key = #9 then 
    form1.ActiveControl:=button4; 
end; 

답변

1

OnKeyPress은 인쇄 가능한 ASCII 문자 만 처리한다는 문제가 있습니다. tabulator 키와 같은 인쇄 할 수없는 기호를 처리하려면 OnKeyDown 이벤트를 사용해야합니다.

procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 
begin 
    if Key = VK_TAB then 
    form1.ActiveControl := button4; 
end; 

당신이 당신의 uses 절에 LCLType을 추가해야 VK_TAB에 액세스하려면 :

당신의 핸들러는 같은 볼 수 있었다. 물론이 절차는 컨트롤 또는 폼의 OnKeyDown 이벤트 처리기로 정의해야합니다.

http://wiki.lazarus.freepascal.org/LCL_Key_Handlinghttp://lazarus-ccr.sourceforge.net/docs/lcl/lcltype/index-2.html을 참조하십시오.