Einzelnen Beitrag anzeigen

Gebhard

Registriert seit: 28. Nov 2005
42 Beiträge
 
Delphi 7 Personal
 
#1

Frage zur Typenumwandlung nach "IDispatch"

  Alt 14. Apr 2011, 14:04
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


Olli
  Mit Zitat antworten Zitat