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 を切ると、キーボードでテキストを選ぶにはまずクリックが必須になりますOnEnter / OnExit を TabStop と組み合わせればツールバーを更新できます(たとえばビューアーがアクティブコントロールのときだけ 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;