property OnDblClick: TNotifyEvent; // published, inherited from TControl
OnDblClick wird nach dem zweiten OnClick in einer Doppelklick-Sequenz ausgelöst und verwendet das systemweite Zeitfenster und den Pixel-Toleranzbereich für Doppelklicks. Der Parameter Sender ist TPdfView selbst; die Bildschirmposition kann aus Mouse.CursorPos ermittelt und mit ScreenToClient in Client-Koordinaten umgerechnet werden
Eine natürliche Verwendung für dieses Ereignis in einem PDF-Reader ist die Geste "Zum Punkt zoomen": Der Benutzer doppelklickt auf das Dokument, um zwischen Seitenbreite anpassen und dem vorherigen Zoomfaktor umzuschalten, optional zentriert auf die Klickposition. Ein weiteres gängiges Muster ist, per Doppelklick das Wort unter dem Cursor auszuwählen, indem CharacterIndexAtPos aufgerufen und dann CurrentCharIndex / die Auswahl-Länge um das getroffene Zeichen erweitert wird
Der Anmerkungs-/Link-Handler des Viewers läuft zuerst — wenn der Benutzer auf einen Link doppelklickt, ist der erste Klick dem Link bereits gefolgt. Doppelklick ist daher am besten für Verhalten reserviert, das nicht mit normalen Navigationsgesten kollidiert
Enabled = FalsePdfView1.CharacterIndexAtPos(Point(X, Y), PageNo) aus einem gekoppelten OnMouseDown-Handler auf, der die Position aufzeichnet, und reagieren Sie dann in OnDblClick
// Beim Doppelklick zwischen Seitenbreite und 100%-Zoom umschalten
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;