Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Frage zur Typenumwandlung nach "IDispatch" (https://www.delphipraxis.net/159829-frage-zur-typenumwandlung-nach-idispatch.html)

Gebhard 14. Apr 2011 14:04

Frage zur Typenumwandlung nach "IDispatch"
 
Hallo,

ich stehe mal wieder auf dem Schlauch.

Das Problem:
Ich möche mit Delphi eine PDF-Datei mit Sicherheitseinstellungen erstellen. In der PDF-Datei soll der Menüpunkt "Datei -> Drucken" deaktiviert sein. In VisualBasic 6.0 funktioniert es, in Delphi Personal 7 gibt es beim Befehl
"oSicherheitseinstellung.SetSecuritySettings(oSich erheit);" die Fehlermeldung "[Fehler] Unit1.pas(44): Inkompatible Typen: 'IDispatch' und 'TsecuritySettings'".
Kann mir jemand bei ber Typenumwandlung helfen?

Vielen Dank für Eure Hilfe

Tschüss Gebhard
Hier noch einmal die Befehle und die Fehlermeldungen.

Code:
interface

uses
  ...,
  PDFMAKERAPILib_TLB,
  ...;

...

...
procedure TForm1.Button1Click(Sender: TObject);
  var
    oPDF:TPDFMakerApp;
    oSicherheitseinstellung:TConversionSettings;
    oSicherheit:TSecuritySettings;
  begin
    oPDF:=TPDFMakerApp.Create(Self);
    oSicherheit:=TsecuritySettings.Create(Self);
    oSicherheit.PermsPasswd:='abc';
    oSicherheit.PrintingModeAllowed:=kPrintingAllowedNone;
    oSicherheit.PermsPasswdNeeded:=true;
    oSicherheitseinstellung:=TConversionSettings.Create(Self);
    oSicherheitseinstellung.SetSecuritySettings(oSicherheit);
    oPDF.CreatePDF('c:\temp\test.xls','c:\Temp\test.pdf',oSicherheitseinstellung);
    end;

Hier die Fehlermeldungen
[Fehler] Unit1.pas(44): Inkompatible Typen: 'IDispatch' und 'TsecuritySettings'
[Fehler] Unit1.pas(46): Es gibt keine überladene Version von 'CreatePDF', die man mit diesen Argumenten aufrufen kann
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

Hier die Funktion in der "PDFMAKERAPILib_TLB"
function CreatePDF(const srcFilePath: WideString; const pdfFilePath: WideString;pSettings: OleVariant): Integer; overload;

Hier der Text, der in VisualBasic funktioniert
Dim oPDF As PDFMAKERAPILib.PDFMakerApp
Dim oSicherheit As PDFMAKERAPILib.SecuritySettings
Dim oSicherheitseinstellung As PDFMAKERAPILib.ConversionSettings
Set oPDF = New PDFMAKERAPILib.PDFMakerApp
Set oSicherheit = New PDFMAKERAPILib.SecuritySettings
oSicherheit.PermsPasswd = "abc"
oSicherheit.PrintingModeAllowed = kPrintingAllowedNone
oSicherheit.PermsPasswdNeeded = True
Set oSicherheitseinstellung = New PDFMAKERAPILib.ConversionSettings
oSicherheitseinstellung.SetSecuritySettings oSicherheit
oPDF.CreatePDF "c:\temp\test.xls", "c:\Temp\test.pdf", oSicherheitseinstellung




Alle Zeitangaben in WEZ +1. Es ist jetzt 15:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz