AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TLB Datei importieren Delphi 7

Ein Thema von KlausV · begonnen am 18. Jul 2024 · letzter Beitrag vom 12. Nov 2024
Antwort Antwort
Seite 3 von 4     123 4      
KlausV

Registriert seit: 29. Aug 2017
Ort: 68809 Neulußheim
84 Beiträge
 
Delphi 7 Professional
 
#21

AW: TLB Datei importieren Delphi 7

  Alt 25. Jul 2024, 09:48
kenne ich und beides passt nicht, leider. Mit dem Entwickler von Landrix hatte ich schon mehrfach gesprochen, leider ist es nicht kompatibel mit D7 und kann seine Klassen/Komponenten nicht einbinden. Über die Funktionalität habe ich dann gar nicht weiter geschaut.
----------------------------------------------
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#22

AW: TLB Datei importieren Delphi 7

  Alt 25. Jul 2024, 09:50
Ich bin mir ziemlich sicher, dass die Units von Sven eben nicht unter Delphi 7 compilieren - zumindest nicht ohne größeren Änderungsaufwand.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
KlausV

Registriert seit: 29. Aug 2017
Ort: 68809 Neulußheim
84 Beiträge
 
Delphi 7 Professional
 
#23

AW: TLB Datei importieren Delphi 7

  Alt 25. Jul 2024, 10:08
Ich bin mir ziemlich sicher, dass die Units von Sven eben nicht unter Delphi 7 compilieren - zumindest nicht ohne größeren Änderungsaufwand.
ja, das hat er auch so bestätigt.
----------------------------------------------
Klaus
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#24

AW: TLB Datei importieren Delphi 7

  Alt 25. Jul 2024, 11:48
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;
  Mit Zitat antworten Zitat
KlausV

Registriert seit: 29. Aug 2017
Ort: 68809 Neulußheim
84 Beiträge
 
Delphi 7 Professional
 
#25

AW: TLB Datei importieren Delphi 7

  Alt 25. Jul 2024, 12:18
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.
----------------------------------------------
Klaus

Geändert von KlausV (25. Jul 2024 um 12:34 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#26

AW: TLB Datei importieren Delphi 7

  Alt 25. Jul 2024, 12:34
Naja: Cursor auf TOleEnum setzen, F1 drücken und in der Hilfe nachschauen, in welcher Unit TOleEnum definiert ist. Diese Unit in der Uses-Klausel hinzufügen.
Delphi-Quellcode:
uses
  ..., Activex;
  Mit Zitat antworten Zitat
KlausV

Registriert seit: 29. Aug 2017
Ort: 68809 Neulußheim
84 Beiträge
 
Delphi 7 Professional
 
#27

AW: TLB Datei importieren Delphi 7

  Alt 25. Jul 2024, 13:17
Naja: Cursor auf TOleEnum setzen, F1 drücken und in der Hilfe nachschauen, in welcher Unit TOleEnum definiert ist. Diese Unit in der Uses-Klausel hinzufügen.
Delphi-Quellcode:
uses
  ..., Activex;
Danke, hat funktioniert. Programm lässt sich nun kompilieren. Im ersten Schritt wurde eine XML erzeugt und auch mit einer bestehenden PDF Datei als PDF/A-3 erzeugt.
Bei einem anderen test bricht das Programm mit einem Speicherfehler ab. Auch das Beenden von Delphi und Start der EXE hat leider nichts gebracht. Jetzt geht es richtig ins eingemachte rein.
----------------------------------------------
Klaus
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#28

AW: TLB Datei importieren Delphi 7

  Alt 25. Jul 2024, 13:28
Speicherfehler heißt was?

Fehlermeldung per Strg+C kopieren und hier einfügen, dann können wir (eventuell) sehen, was da schief geht.

Häufigste Ursache:

Es wurde auf eine Variabel zugegriffen, die nicht initialisiert wurde.

Die IDE kann nix dafür, das ist mit (sehr hoher) Wahrscheinlichkeit ein Fehler im Quelltext.

Programm im Debugger starten: im Menü "Tools" den Unterpunkt "Debugger-Optionen..." aufrufen und dort unten Links 'nen Haken bei "Integrierte Fehlersuche" setzen. Programm in der IDE starten und schauen ob bei dem Fehler der Debugger Dir die fehlerhafte Stelle anzeigt.

Wenn nicht: Bei Speicherfehlern / Zugriffsverletzungen steht in der Fehlermeldung immer die Adresse, an der der Fehler auftritt. Diese Adresse nehmen und dann im Menü "Suchen" den Unterpunkt "Laufzeitfehler suchen..." aufrufen und dort die Fehleradresse eingeben. Mit etwas Glück kommst Du dann an die Stelle, an der der Fehler auftritt. Von dort musst Du dann im Quelltext suchen, was da eventuell nicht initialisiert wurde ...
  Mit Zitat antworten Zitat
KlausV

Registriert seit: 29. Aug 2017
Ort: 68809 Neulußheim
84 Beiträge
 
Delphi 7 Professional
 
#29

AW: TLB Datei importieren Delphi 7

  Alt 26. Jul 2024, 11:27
Moin,
zur Fehlermeldung.
Im debug mode gehe ich mit F7 step by step durch.
1. function TXML.Get_ZUGFeRD_Structure: ZUGFeRD;
begin
Result := DefaultInterface.ZUGFeRD_Structure;
end;
Wenn ich mir den Inhalt von Structure anschaue, dann sieht das gut aus.
((0, 1, 'urn:fdc:peppol.eu:2017:poacc:billing:01:1.0'), ('47110815', '', 380, '20240531', '102', 0, ), ('N999-11111-22', 'KundenNummer', ('', ''), 'Muster GmbH', 'Karl Mustermann', 'Einkauf', '+490000', '', 'stefan@aloaha.com', '49479', 'Bahnhofstraße 1', 'Wohnung 2', ), ('4711', ('', ''), 'Aloaha Limited', 'John Doe', 'Sales Department', '+490000', '', 'stefan@aloaha.com', 'PBK1131', 'Helgoland', 'Triq Gio Felice Inglott', ), (('', '', ('', ''), '', '', '', '', '', '', '', '', '', '', '', '', '', nil, ('', '', '', '', '', '', '', ('', '', ''), ''), nil, nil, ('', '')), ('20120608', '102'), ('', '', '', '', '', '', '', ('', '', ''), ''), ('', '', '')), (('', '', ('', ''), '', '', '', '', '', '', '', '', '', '', '', '', '', nil, ('', '', '', '', '', '', '', ('', '', ''), ''), nil, nil, ('', '')), '47110815', '', 'EUR', nil, (('', ''), ('', '')), nil, nil, nil, nil, (('', ''), ('', ''), ('', ''), ('', ''), ('', ''), ('', ''), ('', ''), ('', ''), ('', '')), ('', '', ''), ('', ''), nil, nil, nil), nil, (0, 0))

2. function TXML.GetDefaultInterface: _XML;
begin
if FIntf = nil then // Inhalt FIntf = Pointer($84D0030) as _XML
Connect;
Assert(FIntf <> nil, 'DefaultInterface ist NULL. Die Komponente ist nicht mit dem Server verbunden. Sie müssen vor dieser Operation ''Connect'' oder ''ConnectTo'' aufrufen');
Result := FIntf;
end;
Nach dem Verlassen der Funktion kommt dann die Fehlermeldung: Eine Exception ist in der Klasse EOlException aufgetreten. Nicht genügend Speicher verfügbar um das Programm weiterhin auszuführen.
Danke schon mal.
----------------------------------------------
Klaus
  Mit Zitat antworten Zitat
KlausV

Registriert seit: 29. Aug 2017
Ort: 68809 Neulußheim
84 Beiträge
 
Delphi 7 Professional
 
#30

AW: TLB Datei importieren Delphi 7

  Alt 31. Jul 2024, 15:45
Nun läuft das Beispiel Projekt mit allen Funktionen, selbst late oder early binding ist möglich.
Bei early binding habe ich das Problem, dass neue Versionen der DLL immer Probleme verursacht haben, d.h. TLB importieren und Projekt neu umwandeln. Leider gehen bei late binding alle Vorteiler vom Editor flöten, kein Hint, kein Syntax Check, etc.
Muss nun überlegen, was die bessere Wahl ist.
Evt. unter early binding entwickeln aber unter late binding ausliefern, mindestens mal so lange bis alle Kinderkrankheiten beseitigt sind.
----------------------------------------------
Klaus

Geändert von KlausV (31. Jul 2024 um 16:20 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      

 

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 07:58 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