AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi AcroPdf rechtsklick verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

AcroPdf rechtsklick verhindern

Ein Thema von froschprinz · begonnen am 23. Okt 2011 · letzter Beitrag vom 30. Okt 2011
 
ASM

Registriert seit: 15. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#22

AW: AcroPdf rechtsklick verhindern

  Alt 25. Okt 2011, 17:13
Wenn es nur darum geht, den Rechtsklick auf die AcroPDF im eigenen Programm zu verhindern, dann geht das doch (ohne das höchst zweifelhaft über einen globalen Mousehook erzwingen zu wollen) mit Hilfe eines tranparenten Panels, welches deckungsgleich über das AcroPDF gelegt ist und die Mausklicks abfängt. So etwas hat doch bereits himitsu vorgeschlagen.

Es gibt mehrere Komponenten transparenter Panels, mit denen das funktioniert, und zwar problemlos auch hinsichtlich von Grafiken in der PDF. Eine solche Komponente ist z.B. als Unit TransparentPanel veröffentlicht als eine der Antworten bei http://www.experts-exchange.com/Prog..._20950505.html.
Eine andere (Unit TransPanel.pas von Mik Tran) stammt noch aus der Steinzeit von Delphi (1998), arbeitet jedoch immer noch fehlerfrei mindestens unter Delphi 7, und sie ist mit Sicherheit irgendwo im Netz noch zu finden (notfalls im Webarchiv).

Einziger Nachteil ist, dass dann naturlich auch der Linksklick auf die AcroPDF nicht mehr funktioniert. Aber die davon abhängigen Aktionen sind leicht zu erreichen, indem man - wie z.B. für das Zoomen - auf der eigenen Form entsprechende Buttons installiert, die genau diese Aktionen mit Hilfe des Zugriffs auf die entsprechenden Funktionen der AcroPDF auslösen, also z.B. für das Zoomen:
Code:
 AcroPDF1.setZoom(percent: Single);
Und für das Blättern der PDF hält man einfach den Scrollbalken der AcroPDF frei vom TransparentPanel:
Code:
procedure TForm1.FormCreate(Sender: TObject);
var
  ScrollbarWidth: Integer;
begin
 ScrollbarWidth := GetSystemMetrics(SM_CXVSCROLL);
 with TransparentPanel1 do
  begin
    left := AcroPDF1.left;
    top := AcroPDF1.top;
    height := AcroPDF1.height;
    width := AcroPDF1.width - ScrollbarWidth;
  end;
end;
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz