Danke, ist gefühlt 100 Jahre her als ich Delphi noch programmiert hatte. Habe zwar immer Kleinigkeiten gemacht, aber wirklich nicht viel. Hauptsache die Anwendung läuft.
Vlt, eins noch dazu:
Wie muss ich einen Parm angeben, der als var in der Prozedur definiert ist?
alo.SaveXML('c:\temp\test1.xml', LicenseKey, 0);
in der
pas Datei ist es so definiert:
function SaveXML(const XMLPath: WideString; const LicenseKey: WideString;
var ZUGFeRDInvoiceStandard: ZUGFeRDVersion): WordBool; safecall;
ZUGFeRDVersion ist als TOleEnum definiert, warum auch immer.
Delphi-Quellcode:
var
ZUGFeRDInvoiceStandard : TOleEnum;
begin
if SaveXML(XMLPath, LicenseKey, ZUGFeRDInvoiceStandard)
then begin
// Hier mit dem weitermachen, was nach dem Speichern der XML geschehen soll.
// Muss mit ZUGFeRDInvoiceStandard irgendwas passieren oder kann der Rückgabewert
// in ZUGFeRDInvoiceStandard ignoriert werden ...?
ShowMessage('
SaveXML erfolgreich ausgeführt.');
end else begin
// Hier näturlich eine sinnvolle Fehlerbehandlung einbauen.
ShowMessage('
SaveXML war nicht erfolgreich.');
end;
end;
so hatte ich es auch schon versucht, aber es kommt [Fehler] Form1_.pas(53): Undefinierter Bezeichner: 'TOleEnum'.
In der aloaha
pas Datei ist das so definiert:
// Konstanten für enum ZUGFeRDVersion
type
ZUGFeRDVersion = TOleEnum;
const
ZUGFeRDVersion_auto = $00000000;
ZUGFeRDVersion_ZUGFeRD = $00000001;
ZUGFeRDVersion_xInvoice = $00000002;
function SaveXML(const XMLPath: WideString; const LicenseKey: WideString;
var ZUGFeRDInvoiceStandard: ZUGFeRDVersion): WordBool; safecall;
Zusätzlich habe ich noch das problem, dass die ZUGFeRD Version ein optionaler Parm ist, d.h. wenn ich jetzt hier etwas mitgebe, dann wird das ja entsprechend umgesetzt. Bei den anderen optionalen Params war es ja einfach mit '', aber hier, was macht wohl die Funktion dann daraus? Normalerweise müsste hier auch etwas wie '' mitgegeben werden.