property TabStop: Boolean; // published, inherited from TWinControl
TabStop가 True이면 PDF 뷰어가 폼의 탭 순회에 참여합니다. 폼의 다른 컨트롤이 포커스를 가진 상태에서 Tab을 누르면 언젠가 포커스가 뷰어로 옮겨지고, 그 시점부터 Page Up / Page Down 같은 키보드 단축키, 스크롤용 화살표 키, OnKeyDown에 정의된 찾기 단축키 핸들러가 모두 활성화됩니다
뷰어가 포커스를 받을 수 있게 유지하는 것은 접근성 면에서 중요합니다. 스크린 리더 사용자와 키보드만 쓰는 사용자는 페이지를 넘기거나 Shift와 화살표 키로 텍스트 선택을 하려면 문서 영역에 도달해야 하기 때문입니다. TScrollingWinControl 후손의 published TabStop 기본값은 True입니다
TabStop := False로 두면 뷰어가 탭 순서에서 빠집니다. 사용자는 여전히 클릭해서 마우스로 스크롤할 수 있지만, 명시적인 PdfView1.SetFocus 호출 없이는 키보드로 포커스를 줄 수 없습니다. 뷰어가 순전히 장식용일 때 — 예컨대 검색 결과 목록 옆의 미리보기 창 — 이따금 유용합니다
TabStop과 TabOrder 둘 다 폼 파일에 저장됩니다AllowUserTextSelection이 구동하는 텍스트 선택은 마우스 드래그에 반응하며 키보드 입력은 뷰어가 포커스를 가져야 반응하므로, TabStop을 끄면 사실상 사용자가 키보드로 텍스트를 선택하려면 클릭을 먼저 해야 합니다TabStop과 OnEnter / OnExit을 조합해 툴바를 갱신하세요(예: 뷰어가 활성 컨트롤일 때만 Copy 버튼 켜기)
// Make the viewer fully keyboard-accessible and the first tab stop
procedure TForm1.FormCreate(Sender: TObject);
begin
PdfView1.TabStop := True;
PdfView1.TabOrder := 0;
PdfView1.OnKeyDown := PdfView1KeyDown;
end;
procedure TForm1.PdfView1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if (Key = VK_F3) then PdfView1.FindNext
else if (Key = Ord('C')) and (ssCtrl in Shift) then
Clipboard.AsText := PdfView1.SelectedText;
end;