TPopupMenu بعارض PDF بحيث تعرض النقرة اليمنى على الصفحة قائمة سياقيةproperty PopupMenu: TPopupMenu; // published, inherited from TControl
إسناد PopupMenu يربط العارض بمكوّن TPopupMenu موضوع على النموذج نفسه. وكلما نقر المستخدم بالزر الأيمن (أو ضغط مفتاح القائمة في لوح المفاتيح) داخل العارض، تعرض VCL/LCL القائمة تلقائيًا عند موضع المؤشر — فلا يحتاج التطبيق إلى معالجة WM_CONTEXTMENU بنفسه
تقدم القائمة السياقية النموذجية لقارئ PDF عناصر مثل نسخ النص المحدد و تكبير و تصغير و ملاءمة العرض و تدوير و الانتقال إلى صفحة… و بحث… و حفظ باسم…. وتقرأ عناصر القائمة عادةً خصائص عامة مثل CurrentCharIndex و Zoom و FitMode و Rotation و PageNumber أو تكتب فيها للعمل على المستند
وبما أن القائمة المنبثقة تُعرض عبر آلية OnContextPopup، يمكنك كبحها أو استبدالها ديناميكيًا بمعالجة OnContextPopup وضبط Handled := True — وهذا مفيد عندما يقع النقر الأيمن فوق حقل نموذج أو تعليقة تحتاج قائمتها الخاصة
TPopupMenu بوصفه مرجع مكوّن في ملف النموذجAllowUserTextSelection بقيمة FalseTPopupMenu.OnPopup وافحص حالة العارض مثل CurrentCharIndex أو 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;