AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Problem mit Delphi 12 CE mit überladenen Funktionen
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Delphi 12 CE mit überladenen Funktionen

Ein Thema von Maekkelrajter · begonnen am 31. Jul 2024 · letzter Beitrag vom 1. Aug 2024
 
Maekkelrajter

Registriert seit: 8. Mär 2017
Ort: Köln
157 Beiträge
 
Delphi 12 Athens
 
#1

Problem mit Delphi 12 CE mit überladenen Funktionen

  Alt 31. Jul 2024, 13:15
Gestern habe ich die Delphi 12 CE installiert. Die Installation verlief problemlos. Als Erstes habe ich mein aktuelles Projekt geladen und versucht zu compilieren. Dieses Projekt verwendet die Jedi Code Library, was bisher (Delphi 11.3 CE) problemlos funktionierte. Leider in tritt mit der D12 CE ein Fehler in der Unit JclGraphUtils auf:
Delphi-Quellcode:
procedure CMYKToBGR(const Source, Target: Pointer; const BitsPerSample: Byte; Count: Cardinal); overload;
var
  R, G, B, K: Integer;
  I: Integer;
  SourcePtr: PCMYK;
  SourcePtr16: PCMYK16;
  TargetPtr: PByte;
begin
  case BitsPerSample of
    8:
      begin
        SourcePtr := Source;
        TargetPtr := Target;
        Count := Count div 4;
        for I := 0 to Count - 1 do
        begin
          K := SourcePtr.K;
          R := 255 - (SourcePtr.C - MulDiv(SourcePtr.C, K, 255) + K);
          G := 255 - (SourcePtr.M - MulDiv(SourcePtr.M, K, 255) + K);
          B := 255 - (SourcePtr.Y - MulDiv(SourcePtr.Y, K, 255) + K);
          TargetPtr^ := Max(0, Min(255, Byte(B)));// Fehler 'Doppeldeutiger überladener Ausdruck' (Max und Min)
          Inc(TargetPtr);
          TargetPtr^ := Max(0, Min(255, Byte(G)));// Fehler 'Doppeldeutiger überladener Ausdruck' (Max und Min)
          Inc(TargetPtr);
          TargetPtr^ := Max(0, Min(255, Byte(R)));// Fehler 'Doppeldeutiger überladener Ausdruck' (Max und Min)
          Inc(TargetPtr);
          Inc(SourcePtr);
        end;
      end;
    16:
      begin
        SourcePtr16 := Source;
        TargetPtr := Target;
        Count := Count div 4;
        for I := 0 to Count - 1 do
        begin
          K := SourcePtr16.K;
          R := 255 - (SourcePtr16.C - MulDiv(SourcePtr16.C, K, 65535) + K) shr 8;
          G := 255 - (SourcePtr16.M - MulDiv(SourcePtr16.M, K, 65535) + K) shr 8;
          B := 255 - (SourcePtr16.Y - MulDiv(SourcePtr16.Y, K, 65535) + K) shr 8;
          TargetPtr^ := Max(0, Min(255, Byte(B)));// Fehler 'Doppeldeutiger überladener Ausdruck' (Max und Min)
          Inc(TargetPtr);
          TargetPtr^ := Max(0, Min(255, Byte(G)));// Fehler 'Doppeldeutiger überladener Ausdruck' (Max und Min)
          Inc(TargetPtr);
          TargetPtr^ := Max(0, Min(255, Byte(R)));// Fehler 'Doppeldeutiger überladener Ausdruck' (Max und Min)
          Inc(TargetPtr);
          Inc(SourcePtr16);
        end;
      end;
    else
      raise EColorConversionError.CreateResFmt(@RsBitsPerSampleNotSupported, [BitsPerSample]);
  end;
end;
Die Funktionen Max() und Min(), die in system.math deklariert sind, erzeugen den Fehler 'Doppeldeutiger überladener Ausdruck', unter 11.3 CE gab es das Problem nicht.
Gibt es womöglich in der D12 IDE eine Einstellung, mit der man das beeinflussen kann?


Gruß LP
  Mit Zitat antworten Zitat
 


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 23:01 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 by Thomas Breitkreuz