Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi PDF Listing mit SynPDF (https://www.delphipraxis.net/204253-pdf-listing-mit-synpdf.html)

oldmann 12. Mai 2020 08:14

AW: PDF Listing mit SynPDF
 
Hallo,

die Fehlerkorrektur von Himitsu räumte den 1. Fehler aus.
Danke dafür.
Jetzt bleibt noch ein Fehler.
Hier ein Ausschnitt aus der Funktion 'function GetDelphiCompilerVersion: RawUTF8;'
wo der Fehler auftritt:
{$ifdef VER2_6_4}+' 2.6.4'{$endif}
{$ifdef VER2_7_0}+' 2.7.0'{$endif}
{$ifdef VER2_7_1}+' 2.7.1'{$endif}
{$else}
{$ifdef VER90} 'Delphi 2'{$endif}
{$ifdef VER100} 'Delphi 3'{$endif}

Bei dem allein stehenden {Selse} steht:
Nicht abgeschlossene bedingte Direktive.

Das ist in der Unit 'SynCommons' in der Zeile 34032:

Gruss Oldmann

Moombas 12. Mai 2020 10:30

AW: PDF Listing mit SynPDF
 
Müsste die Logik nicht so sein (nutze das mit {} aktuell nicht):
Code:
{$ifdef VER2_7_1}+' 2.7.1'{$else}was anderes {$endif}
Dein else steht meiner Ansicht nach "alleine" da. Also bei dir:
Delphi-Quellcode:
{$ifdef VER2_6_4}+' 2.6.4'{$endif}
{$ifdef VER2_7_0}+' 2.7.0'{$endif}
{$ifdef VER2_7_1}+' 2.7.1'{$else}
  {$ifdef VER90} 'Delphi 2'{$endif}
  {$ifdef VER100} 'Delphi 3'{$endif}
{$endif}
Wie himitsu schrieb ist das bei dem kleinen Ausschnitt jedoch schwer zu beurteilen wozu dein else etc. gehören soll.

himitsu 12. Mai 2020 10:32

AW: PDF Listing mit SynPDF
 
Das ist nur ein Ausschnitt, von mehreren verschachtelten IF/IFDEFs, was hier ohne das Drumrum und ohne Einrückung noch schlimmer aussieht.
siehe Post #4

oldmann 12. Mai 2020 12:42

AW: PDF Listing mit SynPDF
 
Hallo,

damit man das Listing noch besser sehen kann noch mal mit Delphi Einrückung,
so wie es im Original auasiht:
Delphi-Quellcode:
function GetDelphiCompilerVersion: RawUTF8;
begin
  result :=
{$ifdef FPC}
  'Free Pascal'
  {$ifdef VER2_4_0}+' 2.4.0'{$endif}
  {$ifdef VER2_4_2}+' 2.4.2'{$endif}
  {$ifdef VER2_4_3}+' 2.4.3'{$endif}
  {$ifdef VER2_4_4}+' 2.4.4'{$endif}
  {$ifdef VER2_5_0}+' 2.5.0'{$endif}
  {$ifdef VER2_5_1}+' 2.5.1'{$endif}
  {$ifdef VER2_6_0}+' 2.6.0'{$endif}
  {$ifdef VER2_6_1}+' 2.6.1'{$endif}
  {$ifdef VER2_6_2}+' 2.6.2'{$endif}
  {$ifdef VER2_6_3}+' 2.6.3'{$endif}
  {$ifdef VER2_6_4}+' 2.6.4'{$endif}
  {$ifdef VER2_7_0}+' 2.7.0'{$endif}
  {$ifdef VER2_7_1}+' 2.7.1'{$endif}
{$else}
  {$ifdef VER90}  'Delphi 2'{$endif}
  {$ifdef VER100} 'Delphi 3'{$endif}
  {$ifdef VER120} 'Delphi 4'{$endif}
  {$ifdef VER130} 'Delphi 5'
    {$else}
    {$if defined(VER140)}
      {$ifdef LINUX}'Kylix 3'{$else}'Delphi 6'{$endif}
    {$elseif defined(VER150)} 'Delphi 7'
    {$elseif defined(VER160)} 'Delphi 8'
    {$elseif defined(VER170)} 'Delphi 2005'
    {$elseif defined(VER185)} 'Delphi 2007'
    {$elseif defined(VER180)} 'Delphi 2006'
    {$elseif defined(VER200)} 'Delphi 2009'
    {$elseif defined(VER210)} 'Delphi 2010'
    {$elseif defined(VER220)} 'Delphi XE'
    {$elseif defined(VER230)} 'Delphi XE2'
    {$elseif defined(VER240)} 'Delphi XE3'
    {$elseif defined(VER250)} 'Delphi XE4'
    {$elseif defined(VER260)} 'Delphi XE5'
    {$elseif defined(VER270)} 'Delphi XE6'
    {$else} 'Delphi unbekannt'
  {$endif}
{$endif}
{$ifdef CPU64}
  +' 64 bit'
{$endif}
end;
Gruss Oldmann

Delphi.Narium 12. Mai 2020 12:47

AW: PDF Listing mit SynPDF
 
Delphi-Quellcode:
function GetDelphiCompilerVersion: RawUTF8;
begin
  result :=
{$ifdef FPC}
  'Free Pascal'
  {$ifdef VER2_4_0}+' 2.4.0'{$endif}
  {$ifdef VER2_4_2}+' 2.4.2'{$endif}
  {$ifdef VER2_4_3}+' 2.4.3'{$endif}
  {$ifdef VER2_4_4}+' 2.4.4'{$endif}
  {$ifdef VER2_5_0}+' 2.5.0'{$endif}
  {$ifdef VER2_5_1}+' 2.5.1'{$endif}
  {$ifdef VER2_6_0}+' 2.6.0'{$endif}
  {$ifdef VER2_6_1}+' 2.6.1'{$endif}
  {$ifdef VER2_6_2}+' 2.6.2'{$endif}
  {$ifdef VER2_6_3}+' 2.6.3'{$endif}
  {$ifdef VER2_6_4}+' 2.6.4'{$endif}
  {$ifdef VER2_7_0}+' 2.7.0'{$endif}
  {$ifdef VER2_7_1}+' 2.7.1'{$endif}
{$else}
  {$ifdef VER90}  'Delphi 2'{$endif}
  {$ifdef VER100} 'Delphi 3'{$endif}
  {$ifdef VER120} 'Delphi 4'{$endif}
  {$ifdef VER130} 'Delphi 5'
  {$else}
    {$if defined(VER140)}
      {$ifdef LINUX}'Kylix 3'{$else}'Delphi 6'{$endif}
    {$elseif defined(VER150)} 'Delphi 7'
    {$elseif defined(VER160)} 'Delphi 8'
    {$elseif defined(VER170)} 'Delphi 2005'
    {$elseif defined(VER185)} 'Delphi 2007'
    {$elseif defined(VER180)} 'Delphi 2006'
    {$elseif defined(VER200)} 'Delphi 2009'
    {$elseif defined(VER210)} 'Delphi 2010'
    {$elseif defined(VER220)} 'Delphi XE'
    {$elseif defined(VER230)} 'Delphi XE2'
    {$elseif defined(VER240)} 'Delphi XE3'
    {$elseif defined(VER250)} 'Delphi XE4'
    {$elseif defined(VER260)} 'Delphi XE5'
    {$elseif defined(VER270)} 'Delphi XE6'
    {$else} 'Delphi unbekannt' <-- fehlt hier nicht ein {$endif}?
  {$endif}
{$endif}
{$ifdef CPU64}
  +' 64 bit'
{$endif}
end;

himitsu 12. Mai 2020 14:22

AW: PDF Listing mit SynPDF
 
Das
Delphi-Quellcode:
{$else} 'Delphi unbekannt'
war von mir, aber da es nur an die vielen
Delphi-Quellcode:
{$elseif defined(VER270)} 'Delphi XE6'
angehängt wurde, ist dort kein zusätzliches ENDIF/IFEND nötig.

Delphi.Narium 12. Mai 2020 14:31

AW: PDF Listing mit SynPDF
 
Also so?
Delphi-Quellcode:
function GetDelphiCompilerVersion: RawUTF8;
begin
  result :=
{$ifdef FPC}
  'Free Pascal'
  {$ifdef VER2_4_0}+' 2.4.0'{$endif}
  {$ifdef VER2_4_2}+' 2.4.2'{$endif}
  {$ifdef VER2_4_3}+' 2.4.3'{$endif}
  {$ifdef VER2_4_4}+' 2.4.4'{$endif}
  {$ifdef VER2_5_0}+' 2.5.0'{$endif}
  {$ifdef VER2_5_1}+' 2.5.1'{$endif}
  {$ifdef VER2_6_0}+' 2.6.0'{$endif}
  {$ifdef VER2_6_1}+' 2.6.1'{$endif}
  {$ifdef VER2_6_2}+' 2.6.2'{$endif}
  {$ifdef VER2_6_3}+' 2.6.3'{$endif}
  {$ifdef VER2_6_4}+' 2.6.4'{$endif}
  {$ifdef VER2_7_0}+' 2.7.0'{$endif}
  {$ifdef VER2_7_1}+' 2.7.1'{$endif}
{$else}
  {$ifdef VER90}  'Delphi 2'{$endif}
  {$ifdef VER100} 'Delphi 3'{$endif}
  {$ifdef VER120} 'Delphi 4'{$endif}
  {$ifdef VER130} 'Delphi 5'
  {$else}
    {$if defined(VER140)}
      {$ifdef LINUX}'Kylix 3'{$else}'Delphi 6'{$endif}
    {$elseif defined(VER150)} 'Delphi 7'
    {$elseif defined(VER160)} 'Delphi 8'
    {$elseif defined(VER170)} 'Delphi 2005'
    {$elseif defined(VER185)} 'Delphi 2007'
    {$elseif defined(VER180)} 'Delphi 2006'
    {$elseif defined(VER200)} 'Delphi 2009'
    {$elseif defined(VER210)} 'Delphi 2010'
    {$elseif defined(VER220)} 'Delphi XE'
    {$elseif defined(VER230)} 'Delphi XE2'
    {$elseif defined(VER240)} 'Delphi XE3'
    {$elseif defined(VER250)} 'Delphi XE4'
    {$elseif defined(VER260)} 'Delphi XE5'
    {$elseif defined(VER270)} 'Delphi XE6'
    {$else} 'Delphi unbekannt' {$endif}
  {$endif}
  {$ifdef CPU64}
    +' 64 bit'
  {$endif}
end;
Und dann fehlt ein {$endif}.

Und genau das besagt dir von oldmann beschriebene Fehlermeldung.

himitsu 12. Mai 2020 14:36

AW: PDF Listing mit SynPDF
 
siehe Post #4
dort waren 3x IFEND/ENDIF danach.

In diesen Code hatte ich die Zeile eingefügt.
müsste angepasst werden, falls das noch der Code aus einer uralten SynPDF-Version war.

Delphi.Narium 12. Mai 2020 15:02

AW: PDF Listing mit SynPDF
 
Schön, und wo ist jetzt der Fehler?

Habe nur den Quelltext von oben genommen und versucht den Fehler darin zu finden.

Dass Du da was ergänzt hast, habe ich auch verstanden.

Und bei der Umsetzung Deines Vorschlages und der damit verbundenen Ergänzung ist bei oldmann nun ein Fehler aufgetreten.

Was ist jetzt falsch?

Das Original, Deine Ergänzung oder die Art der Umsetzung Deiner Ergänzung?

PS:
Und vermutlich ist bei der Umsetzung ein {$ifend} verlorengegangen.
Delphi-Quellcode:
// function GetDelphiCompilerVersion: RawUTF8;
function GetDelphiCompilerVersion: String;
begin
  result :=
{$ifdef FPC}
  'Free Pascal'
  {$ifdef VER2_4_0}+' 2.4.0'{$endif}
  {$ifdef VER2_4_2}+' 2.4.2'{$endif}
  {$ifdef VER2_4_3}+' 2.4.3'{$endif}
  {$ifdef VER2_4_4}+' 2.4.4'{$endif}
  {$ifdef VER2_5_0}+' 2.5.0'{$endif}
  {$ifdef VER2_5_1}+' 2.5.1'{$endif}
  {$ifdef VER2_6_0}+' 2.6.0'{$endif}
  {$ifdef VER2_6_1}+' 2.6.1'{$endif}
  {$ifdef VER2_6_2}+' 2.6.2'{$endif}
  {$ifdef VER2_6_3}+' 2.6.3'{$endif}
  {$ifdef VER2_6_4}+' 2.6.4'{$endif}
  {$ifdef VER2_7_0}+' 2.7.0'{$endif}
  {$ifdef VER2_7_1}+' 2.7.1'{$endif}
{$else}
  {$ifdef VER90}  'Delphi 2'{$endif}
  {$ifdef VER100} 'Delphi 3'{$endif}
  {$ifdef VER120} 'Delphi 4'{$endif}
  {$ifdef VER130} 'Delphi 5'
  {$else}
    {$if defined(VER140)}
      {$ifdef LINUX}'Kylix 3'{$else}'Delphi 6'{$endif}
    {$elseif defined(VER150)} 'Delphi 7'
    {$elseif defined(VER160)} 'Delphi 8'
    {$elseif defined(VER170)} 'Delphi 2005'
    {$elseif defined(VER185)} 'Delphi 2007'
    {$elseif defined(VER180)} 'Delphi 2006'
    {$elseif defined(VER200)} 'Delphi 2009'
    {$elseif defined(VER210)} 'Delphi 2010'
    {$elseif defined(VER220)} 'Delphi XE'
    {$elseif defined(VER230)} 'Delphi XE2'
    {$elseif defined(VER240)} 'Delphi XE3'
    {$elseif defined(VER250)} 'Delphi XE4'
    {$elseif defined(VER260)} 'Delphi XE5'
    {$elseif defined(VER270)} 'Delphi XE6'
    {$else} 'Delphi unbekannt'
    {$ifend}  <-- Das gab es am Anfang mal, ist im letzten Post von oldmann aber nicht mehr enthalten.
  {$endif}
{$endif}
{$ifdef CPU64} +' 64 bit'{$endif}
end;
Jedenfalls lässt sich das jetzt mit Delphi 7 kompilieren.

mytbo 12. Mai 2020 16:22

AW: PDF Listing mit SynPDF
 
Das ist ein ältere SynPDF Version. Bei der Aktuellen steht am Ende:
Code:
...
{$elseif defined(VER330)}'Delphi 10.3 Rio'
{$elseif defined(VER340)}'Delphi 10.4 Next'
Vielleicht mal eine neuere Version laden.

Bis bald...
Thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:09 Uhr.
Seite 2 von 3     12 3      

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