![]() |
Delphi Fehler
Liste der Anhänge anzeigen (Anzahl: 2)
Also wenn ich in meinem derzeitigen Projekt eine Zeile mit einem Funktionsaufruf wiederhole (nur Parameter ändern sich), dann spuckt mir Delphi einen Fehler aus ...
Folgendes wird korrekt compiliert und ausgeführt:
Delphi-Quellcode:
jedoch geändert in
DrawPolyline(Copy(FVertices, 0, FPartCount));
// DrawPolyline(Copy(FVertices, FPartCount, FPartCount));
Delphi-Quellcode:
hat Delphi einen internen Fehler X865 (siehe Screenshots).
DrawPolyline(Copy(FVertices, 0, FPartCount));
DrawPolyline(Copy(FVertices, FPartCount, FPartCount)); Weiß einer wie das zustande kommt ? Die 2 Zeilen sind selbsterklärend: ich übergebe an meine Funktion DrawPolyline ein Array, das ich mit Copy() aus einem anderen Array FVertices kopiert habe. Der Funktionsparameter hat keinen definierten Typ (also einfach "array of ..."). FPartCount ist ein Integer. // edit: Übrigens: wenn ich FPartCount durch einen konstanten Wert ersetze, gibt's keinen Fehler. Wenn ich eine lokale int Variable als Kopie von FPartCount statt FPartCount benutze, kommt der Fehler wieder. Irgendwas stimmt mit dem Compiler nicht -.- Also Ideen ? ^^ |
AW: Delphi Fehler
Den X865 habe ich schon öfters früher gelesen, das ist ein Bug, der nur in Delphi 7 auftritt und etwas mit der Code-Optimierung zu tun hat.
Tritt er auch auf, wenn du die Optimierung ausschaltest? Wenn er dann weg ist, gibt es glaube ich einen Patch irgendwo für D7 (mal bei Emba nachfragen, ich glaube der Patch auf 7.1 behebt es...) oder du brauchst eine neuere (oder auch ältere) Delphi-Version....oder...du schaltest die Code-Optimierung für das Projekt generell aus, was aber nicht gerade optimal ist... Edit: In der QC steht "Fixed in Build 9.0.1761.24408", das wäre aber dann D2005. Heisst, der Bug wurde in D7 nicht behoben und es gibt auch keinen Patch... Quelle: ![]() Edit 2: Ja ist wohl leider so, der Fehler wurde erst in D2005 gefixt: ![]() Was ich auch mal probieren würde, ist zwar ein blöder Workarond, aber vielleicht geht es ja: Leg eine zweite Int-variable als Pointer zu FPartcount an und dereferenziere sie in der Funktion anstatt Fpartcount direkt zu nehmen...oder wrappe das Copy() in einer externen Funktion...oder deklariere die Funktion als inline...vielleicht umschifft es ja den Bug... |
AW: Delphi Fehler
Mann müsste auc mitt {$...} Angabe die Codeoptimierung partiell abschalten können.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 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