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 28. Nov 2024
Antwort Antwort
KlausV

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

AW: TLB Datei importieren Delphi 7

  Alt 24. Jul 2024, 09:59
Ich benötige doch noch Hilfe.
Vom Hersteller habe ich ein VB6 Script bekommen, wie man unter VB das Framework nutzt.
Ich habe nun begonnen den VB6 code zu konvertieren, komme aber mit den Komponenten/Aufrufen überhaupt nicht klar.
Ich hoffe, dass jemand Licht ins Dunkel bringt.
Der TLB Import hat funktioniert und ich habe im Reiter ActiveX eine Menge Komponenten.
Wenn ich eine davon auf ein Formular ziehe, dann steht in uses Aloaha_ZUGFeRD_TLB, was schon mal OK ist. Die BPL Datei von Aloaha liegt im Delphi Verzeichnis.
Im Anhang findet Ihr das VB Script und das D7 Script, was ich daraus gemacht habe, bekomme aber massig viele Umwandlungsfehler und bin mir überhaupt nicht sicher, wie ich das angehen kann.
FRM1.TXT = VB6

Es fängt schon bei der Definition an
Dim alo As Aloaha_ZUGFeRD.XML
Set alo = CreateObject("Aloaha_ZUGFeRD.XML")
Hierzu auch ein link der Definition: https://www.zugferdpro.com/posten-au...nung-auslesen/
Wäre cool, wenn jemand helfen könnte.
Gruß Klaus
Angehängte Dateien
Dateityp: pas Form1_.pas (20,4 KB, 5x aufgerufen)
Dateityp: txt Form1.txt (28,1 KB, 9x aufgerufen)
----------------------------------------------
Klaus

Geändert von KlausV (24. Jul 2024 um 10:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: TLB Datei importieren Delphi 7

  Alt 24. Jul 2024, 12:23
Die Deklaration alo: Aloaha_ZUGFeRD.XML; und das alo := CreateOleObject('Aloaha_ZUGFeRD.XML'); kannst du weglassen. Stattdessen einfach eine TXML-Komponente auf das Form setzen und den Code so verwenden wie er ist.
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
88 Beiträge
 
Delphi 7 Professional
 
#3

AW: TLB Datei importieren Delphi 7

  Alt 24. Jul 2024, 12:43
Danke, ja die XML Komponenten von aloaha. Bin jetzt am schauen, weil immer noch zig Fehler zu finden sind.
----------------------------------------------
Klaus

Geändert von KlausV (24. Jul 2024 um 13:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: TLB Datei importieren Delphi 7

  Alt 24. Jul 2024, 13:28
Genau. Du setzt im Form-Designer eine Aloha TXML-Komponente auf das Form. Damit wird auch die Aloaha_ZUGFeRD_TLB in die uses-Anweisuung aufgenommen. Die Komponente nennst du dann in "alo" um, damit der Code in der Unit weitestgehend so bleiben kann. Lediglich die Deklaration der lokalen Variable "alo" und deren Initialisierung mit CreateOleObject muss noch weg. Der Rest sollte dann so funktionieren.
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
88 Beiträge
 
Delphi 7 Professional
 
#5

AW: TLB Datei importieren Delphi 7

  Alt 24. Jul 2024, 14:50
Danke sehr.
Das ist aktuell mega mühsam, weil die Prozeduren teilweise optionale Parameter haben und Delphi die alle als mandatory sieht. Evt. hängt das mit dem Inport der Type Library zusammen.
Gibt es in D7 eine Art Object Viewer, wo man alle Parms der Prozeduren sehen kann. Wenn ich auf die Prozedure gehen, dann werden die Parms angezeigt. Bei manchen zeigt er nicht alle an.
In VB6 gibt es wohl so einen Object Viewer.
----------------------------------------------
Klaus
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#6

AW: TLB Datei importieren Delphi 7

  Alt 24. Jul 2024, 16:23
Eigentlich kann D7 die Parameter für Funktionen und Prozeduren anzeigen, aber manchmal klappt das zum Verrecken nicht. Warum? Hab' ich in den 22 Jahren, die es D7 gibt, nicht herausfinden können

Nimm bitte alle Dateien, zu denen Du die Quelltexte hast, in das Projekt auf. Im Menü "Projekt" und dann "Dem Projekt hinzufügen" (Umsch+F11). Danach dann Strg+F9. Mit etwas Glück wird es dann besser.

Im Editor den Komponentennamen schreiben, dann den Punkt und Strg+Leertaste. Dann sollte eine Liste der verfügbaren Eigenschaften, Funktionen und Prozeduren, in der Du auch die Parameter sehen kannst, erscheinen. Wenn Du irgendwo Komponentenname.Prozedurename geschrieben hast, auf dem Prozdurename die rechte Maustaste drücken. Im Menü ersten Eintrag ("Deklaration suchen") klicken. Dann sucht D7 Dir die entsprechende Definition im Quelltext. Dort kannst Du dann die erforderlichen Parameter (per Copy&Paste) entnehmen, im Quelltext einfügen und entsprechend den Quelltext anpassen / schreiben.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: TLB Datei importieren Delphi 7

  Alt 24. Jul 2024, 16:42
Evt. hängt das mit dem Inport der Type Library zusammen.
Mag sein. Eventuell ist das ja in einer neueren Version besser, aber das müsste ich erst ausprobieren.

Allerdings sind bei COM ja nicht zwingend nur die letzten Parameter optional, aber das ginge syntaktisch in Delphi gar nicht.

Gibt es in D7 eine Art Object Viewer, wo man alle Parms der Prozeduren sehen kann. Wenn ich auf die Prozedure gehen, dann werden die Parms angezeigt. Bei manchen zeigt er nicht alle an.
Die Programmierhilfe ist meines Wissens die einzige Option. Wenn die nicht immer alle Parameter anzeigt, dann ist das eventuell eine interne Beschränkung bei der Anzeige.
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
88 Beiträge
 
Delphi 7 Professional
 
#8

AW: TLB Datei importieren Delphi 7

  Alt 24. Jul 2024, 16:54
Sorry, habe mich falsch ausgedrückt.
Der Codevervollständiger funktioniert, d.h. mit Strg Leertaste sehe ich alles. In der pas Datei, die aus der TLB erzeugt wurde sind wohl alle Parms als mandatory definiert, obwohl viele davon optional sind.
Beispiel:
alo.Add_AdditionalReferencedDocument(IssuerAssigne dID, URIID, TypeCode, docdescription); --> 4 Parms im Delphi Programm

In der Aloaha_Zugferd_tlb.pas sind aber 10 definiert:
procedure Add_AdditionalReferencedDocument(const IssuerAssignedID: WideString;
const URIID: WideString; const TypeCode: WideString;
const Name: WideString; const MimeCode: WideString;
const FileName: WideString;
const IssueDateTime: WideString;
const Document_DateFormat: WideString;
const ReferenceTypeCode: WideString;
const MimeType: WideString); dispid 1610744029;

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.

Dann habe ich noch einen Fehler, den ich auch nicht raus bekomme.
In VB6 definiert:
Dim bla As Object
bla = alo.ZUGFeRD_Structure

In Delphi habe ich es so definiert:
bla: TObject;
bla := alo.ZUGFeRD_Structure;

Fehler: inkompatible Typen TOBJECT und ZUGFeRD.
property ZUGFeRD_Structure: ZUGFeRD read Get_ZUGFeRD_Structure write Set_ZUGFeRD_Structure;

Langsam wird echt mühsam.
----------------------------------------------
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 16:00 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