property TabStop: Boolean; // published, inherited from TWinControl
При TabStop = True вьювер PDF встаёт в табовый цикл формы. Нажатие Tab, когда фокус у другого контрола формы, рано или поздно переносит фокус во вьювер, после чего активируются клавиатурные шорткаты вроде Page Up / Page Down, стрелки для прокрутки и обработчик поиска, заданный в OnKeyDown
Фокусируемость вьювера важна для доступности: скринридеры и пользователи, ходящие только с клавиатуры, должны добираться до области документа, чтобы листать страницы или выделять текст, удерживая Shift со стрелками. Умолчание для published TabStop у потомка TScrollingWinControl — 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;