TPopupMenu mit dem PDF-Viewer, damit ein Rechtsklick auf eine Seite ein Kontextmenü anzeigtproperty PopupMenu: TPopupMenu; // published, inherited from TControl
Wenn PopupMenu gesetzt wird, ist der Viewer mit einem TPopupMenu-Komponent auf demselben Formular verbunden. Immer wenn der Benutzer im Viewer mit der rechten Maustaste klickt oder die Kontextmenütaste drückt, zeigt VCL/LCL das Menü automatisch an der Cursorposition an — die Anwendung muss WM_CONTEXTMENU nicht selbst behandeln
Ein typisches Kontextmenü eines PDF-Lesers bietet Einträge wie Copy Selected Text, Zoom In, Zoom Out, Fit Width, Rotate, Go to Page…, Find… und Save As…. Die Menüeinträge lesen oder schreiben typischerweise öffentliche Eigenschaften wie CurrentCharIndex, Zoom, FitMode, Rotation und PageNumber, um das Dokument zu steuern
Da das Popup über den Mechanismus OnContextPopup angezeigt wird, können Sie es dynamisch unterdrücken oder ersetzen, indem Sie OnContextPopup behandeln und Handled := True setzen — nützlich, wenn der Rechtsklick über einem Formularfeld oder einer Anmerkung erfolgt, das bzw. die ein eigenes Menü benötigt
TPopupMenu-Instanz wird als Komponentenverweis in der Formulardatei gespeichertAllowUserTextSelection False istTPopupMenu.OnPopup ein und prüfen Sie Ansichtsstatus wie CurrentCharIndex oder Pdf.Active
// Ein Kontextmenü mit Copy / Fit Width / Go to Page zuweisen
procedure TForm1.FormCreate(Sender: TObject);
begin
PdfView1.PopupMenu := pmReader;
end;
procedure TForm1.miFitWidthClick(Sender: TObject);
begin
PdfView1.FitMode := pfmFitToWidth;
end;
procedure TForm1.miGoToPageClick(Sender: TObject);
var S: string;
begin
S := IntToStr(PdfView1.PageNumber);
if InputQuery('Go to page', 'Page number:', S) then
PdfView1.PageNumber := StrToIntDef(S, PdfView1.PageNumber);
end;