TPopupMenu를 PDF 뷰어에 연결하여 page를 오른쪽 클릭하면 context menu가 나타나도록 합니다property PopupMenu: TPopupMenu; // published, inherited from TControl
PopupMenu를 설정하면 같은 폼에 놓인 TPopupMenu 컴포넌트와 뷰어가 연결됩니다. 사용자가 뷰어 안에서 오른쪽 클릭(또는 키보드 메뉴 키 입력)을 하면 VCL/LCL이 커서 위치에 메뉴를 자동으로 보여 주므로 — 애플리케이션이 WM_CONTEXTMENU를 직접 처리할 필요가 없습니다
전형적인 PDF 리더 컨텍스트 메뉴에는 선택 텍스트 복사, 확대, 축소, 폭에 맞춤, 회전, 페이지로 이동…, 찾기…, 다른 이름으로 저장… 같은 항목이 들어갑니다. 메뉴 항목은 보통 CurrentCharIndex, Zoom, FitMode, Rotation, PageNumber 같은 public 프로퍼티를 읽거나 써서 문서에 작용합니다
팝업은 OnContextPopup 메커니즘으로 표시되므로, OnContextPopup을 처리해 Handled := True로 설정하면 동적으로 억제하거나 대체할 수 있습니다 — 오른쪽 클릭이 자체 메뉴가 필요한 폼 필드나 주석 위에서 일어날 때 유용합니다
TPopupMenu 인스턴스에 대한 링크는 컴포넌트 참조로 폼 파일에 저장됩니다AllowUserTextSelection이 False여도 팝업됩니다TPopupMenu.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;