property OnDblClick: TNotifyEvent; // published, inherited from TControl
OnDblClick はダブルクリックシーケンスの 2 回目の OnClick の後に発火し、システムのダブルクリック時間とピクセル許容窓を使います。Sender パラメーターは TPdfView 自身です。画面位置は Mouse.CursorPos から取得し、ScreenToClient でクライアント座標へ変換できます
PDF リーダーでのこのイベントの自然な用途は「ポイントへズーム」の操作です。ユーザーが文書をダブルクリックして幅に合わせると前のズームレベルを切り替え、オプションでクリック位置を中心に表示します。もう一つの一般的なパターンは、ダブルクリックで CharacterIndexAtPos を呼び出してカーソル下の単語を選択し、ヒットした文字の周りに CurrentCharIndex と選択長を広げます
ビューアーの注釈/リンクハンドラーが先に実行されます。ユーザーがリンクをダブルクリックした場合、最初のクリックですでにリンクをたどっています。したがってダブルクリックは通常のナビゲーション操作と競合しない挙動に予約するのが最適です
Enabled = False のときはイベントが発火しませんOnMouseDown ハンドラーから PdfView1.CharacterIndexAtPos(Point(X, Y), PageNo) を呼び出し、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;