TPopupMenu avec la visionneuse PDF afin qu'un clic droit sur une page affiche un menu contextuelproperty PopupMenu: TPopupMenu; // published, inherited from TControl
Setting PopupMenu wires the viewer to a TPopupMenu composant placé sur le même formulaire. Chaque fois que l'utilisateur effectue un clic droit (ou appuie sur la touche menu du clavier) dans la visionneuse, VCL/LCL affiche automatiquement le menu à la position du curseur — l'application n'a pas besoin de gérer WM_CONTEXTMENU itself.
A typical PDF reader context menu offers items such as Copy Selected Text, Zoom In, Zoom Out, Fit Width, Rotate, Go to Page…, Find… and Save As…. The menu items typically read or write public properties such as CurrentCharIndex, Zoom, FitMode, Rotation and PageNumber to act on the document.
Because the popup is displayed via the OnContextPopup mechanism, you can suppress or replace it dynamically by handling OnContextPopup and setting Handled := True — useful when the right-click occurs over a form field or annotation that needs its own menu.
TPopupMenu instance is stored as a component reference in the form file.AllowUserTextSelection is False.TPopupMenu.OnPopup and inspect viewer state such as CurrentCharIndex or Pdf.Active.
// Attach a context menu offering Copy / Fit Width / Go to Page
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;