property OnDblClick: TNotifyEvent; // published, inherited from TControl
OnDblClick срабатывает после второго OnClick в последовательности двойного щелчка с использованием системного интервала двойного щелчка и допустимого смещения в пикселях. Параметр Sender — это сам TPdfView; положение на экране можно получить из Mouse.CursorPos и преобразовать в клиентские координаты через ScreenToClient
Естественный сценарий для этого события в PDF-просмотрщике — жест zoom-to-point: пользователь делает двойной щелчок по документу, чтобы переключаться между fit-to-width и предыдущим уровнем масштабирования, при необходимости центрируя вид на позиции щелчка. Ещё один распространённый шаблон — использовать двойной щелчок для выбора слова под курсором через CharacterIndexAtPos и последующего расширения CurrentCharIndex и длины выделения вокруг найденного символа
Сначала отрабатывает встроенный обработчик аннотаций и ссылок просмотрщика — если пользователь дважды щёлкнул по ссылке, первый щелчок уже выполнил переход. Поэтому двойной щелчок лучше оставлять для поведения, которое не конфликтует с обычной навигацией
Enabled = FalsePdfView1.CharacterIndexAtPos(Point(X, Y), PageNo) из связанного обработчика OnMouseDown, который запоминает позицию, а затем действуйте в OnDblClick
// Toggle between fit-to-width and 100% zoom on double-click
procedure TForm1.PdfView1DblClick(Sender: TObject);
begin
if PdfView1.FitMode = pfmFitToWidth then
begin
PdfView1.FitMode := pfmNone;
PdfView1.Zoom := 1.0;
end
else
PdfView1.FitMode := pfmFitToWidth;
end;