TPopupMenu aan de PDF-viewer zodat rechtsklikken op een pagina een contextmenu toontproperty PopupMenu: TPopupMenu; // published, inherited from TControl
Het instellen van PopupMenu koppelt de viewer aan een TPopupMenu-component die op hetzelfde formulier is geplaatst. Telkens wanneer de gebruiker rechtsklikt (of de menutoets op het toetsenbord indrukt) in de viewer, toont VCL/LCL automatisch het menu op de cursorpositie — de toepassing hoeft WM_CONTEXTMENU niet zelf af te handelen.
Een typisch PDF-lezer-contextmenu biedt items zoals Geselecteerde tekst kopiĆ«ren, Inzoomen, Uitzoomen, Breedte passen, Draaien, Ga naar pagina…, Zoeken… en Opslaan als…. De menu-items lezen of schrijven doorgaans publieke eigenschappen zoals CurrentCharIndex, Zoom, FitMode, Rotation en PageNumber om op het document te handelen.
Omdat de pop-up via het OnContextPopup-mechanisme wordt getoond, kunt u deze dynamisch onderdrukken of vervangen door OnContextPopup af te handelen en Handled := True in te stellen — nuttig wanneer de rechtklik plaatsvindt over een formulierveld of annotatie dat zijn eigen menu nodig heeft.
TPopupMenu-instantie wordt als componentreferentie in het formulierbestand opgeslagen.AllowUserTextSelection False is.TPopupMenu.OnPopup en inspecteert u de viewerstatus zoals CurrentCharIndex of 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;