Autor Beitrag
DonManfred
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 148
Erhaltene Danke: 2

Windows 7
Delphi XE3 Pro + HTML5Builder
BeitragVerfasst: Mo 08.10.12 23:00 
Vorab: Dieser Thread ist kein Hilferuf. Er ist eher als Hinweis an diejenigen gedacht, die vielleicht vor dem gleichen Problem stehen.

Desweiteren sei gesagt, das ich "nur" eine L&L 15 zur Verfügung habe (ist von 2009).
Nachdem mein Chef nun so grosszügig war unsere Delphi-Version upzudaten (nun Delphi XE3) will ich mir das natürlich mit den gewohnten Komponenten einrichten. Dazu gehört bei mir eben auch List & Label 15.

Die Komponenten von LL15 liessen sich unter XE3 nicht Compilieren bzw. installieren.

Ob es NUR die List & Label 15 betrifft oder auch vorherige oder nachkommende (die V16 vielleicht noch; spoiler: mit der V17 klappt es ja)

Fehlermeldung: (soweit ich das nun noch in erinnerung habe)
Inkompatible Typen [irgendwas] und [Cardinal]

Das "irgendwas" weiss ich leider nicht mehr.

Es gab - in meinem Fall - nur EINE Stelle wo ein ERROR auftrat und deg das Installieren der Komponente verhinderte. Ok, es gab mehrere aber die anderen waren "nur" warnings.

Lösung:
Die Lösung habe ich in der Trial-Version von LL17 gefunden. DA sind ja auch die Komponenten mit drin. Ich wollte - nachdem der Fehler mit LL15 auftrat - checken ob die neueste Version von LL mit XE3 bereits funktioniert. Müsste ich dem Chef dann aber überzeugen nochmal auf ne neuere Version upzudaten.

Anm: Leider hab ich die Original LL15.PAS nicht mehr (bzw schon; ich müsste den Installer neu laufen lassen) und kann jetzt nur einen groben Hinweis geben.

Also: Es betrifft die Datei LL15.PAS

Alter Code (aus dem Kopf so restauriert wie ich meine das er es war. Sorry, kann hier aktuell nur "vermuteten" Code anbieten. Er könnte im Original doch marginal abweichend sein :-)

ausblenden Delphi-Quelltext
1:
2:
3:
TDesignerPrintJobEvent = procedure(Sender: TObject; UserParam: integer; ProjectFileName: TString;
                                 OriginalFileName: TString; Pages: integer; Task: integer;
                                 hWndPreviewControl, Event: Cardinal; var returnValue: integer) of object;


Das musste ich in den Folgenden Code abändern und damit liess die Komponente sich installieren.

ausblenden Delphi-Quelltext
1:
2:
3:
TDesignerPrintJobEvent = procedure(Sender: TObject; UserParam: integer; ProjectFileName: TString;
                                 OriginalFileName: TString; Pages: integer; Task: integer;
                                 hWndPreviewControl: cmbtHWND; Event: THandle; var returnValue: integer) of object;


Die Komponente LLDB15 fehlt mir noch in der Komponentenpalette aber das Package liess sich so schonmal installieren.

Vielleicht hilft dieser Thread ja dem ein- oder anderen!? :-)


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 09.10.2012 um 20:32

_________________
Gruss Manfred
s_zim
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mi 02.07.14 10:28 
Hallo allerseits,

auch wenn dieser Thread fast 2 Jahre alt ist, hat er mir letzte Woche echt geholfen, weil ich LL15 (List & Label 15) unter Delphi XE2 zum laufen bringen musste. Ich ergänze hier mal die Tipps von user profile iconDonManfred, also was ich alles noch machen musste, damit es schließlich lief.

Die Fehlermeldung war:
[DCC Fehler] l15db.pas(1131): E2010 Inkompatible Typen: 'Cardinal' und 'NativeUInt'

Das wird korrigiert durch die bereits genannte Anpassung von TDesignerPrintJobEvent in L15.pas (... hWndPreviewControl: cmbtHWND; Event: THandle; ...)

Der Compiler hat dann aber weiter gemeckert:
[DCC Fataler Fehler] l15des.pas(46): F1026 Datei nicht gefunden: 'dsgnintf.dcu'

Die IFDEFs für die neueren Delphi-Versionen fehlen hier noch, also L15des.pas ergänzen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
{$ifdef ver220}   // Delphi XE
{$define d6plus}
{$endif}

{$ifdef ver230}   // Delphi XE2
{$define d6plus}
{$endif}


Ich habe nur Delphi XE2 hier. Für neuere Versionen, also XE3, XE4, XE5 usw. müssten die IFDEFs dann vermutlich so aussehen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
{$ifdef ver240}   // Delphi XE3
{$define d6plus}
{$endif}

{$ifdef ver250}   // Delphi XE4
{$define d6plus}
{$endif}

{$ifdef ver260}   // Delphi XE5
{$define d6plus}
{$endif}


Wie gesagt, kann ich nicht verifizieren, ist nur eine Vermutung. Schaut einfach in der Delphi-Hilfe unter "Compiler-Versionen" nach, dort sind die verschiedenen Versionen aufgelistet.

Nach dieser letzten Anpassung konnte ich das Package ohne Fehler kompilieren und installieren. :D