Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Delphi 2007 - Interner Fehler URW926 (https://www.delphipraxis.net/109948-delphi-2007-interner-fehler-urw926.html)

Dawn87 10. Mär 2008 15:20


Delphi 2007 - Interner Fehler URW926
 
Hallo :)

Ich hoffe ich bin mit meinem Thema hier richtig aufgehoben.

Es geht um folgendes:

Vor einiger Zeit habe ich mit Delphi 7 eine Software erstellt. Diese Software soll nun mit Delphi 2007 weiterentwickelt werden, das funktioniert leider nicht so wie ich es erwartet habe:

Der Compiler steigt mit einer Fehlermeldung aus, dabei wird von meiner Unit "uDATroniC.pas" die letzte Zeile markiert.

Die Fehlermeldung unter hieß zunächst

[DCC Fehler] uDATroniC.pas(1598): F2084 Interner Fehler: URW821

änderte sich nach der Installation des Dezember-Updates in:

[DCC Fehler] uDATroniC.pas(1598): F2084 Interner Fehler: URW926

Zwar findet man bei Google über den 1. Fehler noch einige Sachen, der letztere allerdings ist Google unbekannt.

Weiß jemand von euch wie ich das Problem in den Griff bekommen könnte? Ich habe nämlich keine Ideen mehr :-/.

Grüße
Stefan

mirage228 10. Mär 2008 15:22

Re: Delphi 2007 - Interner Fehler URW926
 
Also URW steht für nen Fehler beim Schreiben oder Lesen der DCU. Eventuell die alte DCU mal löschen?

mfG
mirage228

Dawn87 10. Mär 2008 15:44

Re: Delphi 2007 - Interner Fehler URW926
 
Hallo!

Vielen Dank für Deine Antwort.

Ich habe die alten DCUs mal gelöscht - leider hat es das Problem nicht gelöst.

Gibt es villeicht eine weitere Sache die ich noch ausprobieren könnte?

Grüße
Stefan

mirage228 10. Mär 2008 15:47

Re: Delphi 2007 - Interner Fehler URW926
 
Achso, hm, verwendest du vielleicht Runtime-Packages (Laufzeitpackages)?
Wenn ja, musst du diese ggf. in der richtigen Reihenfolge neu compilieren.

Tritt der Fehler auch auf, wenn du die Datei in einem neuem Projekt verwendest?

mfG
mirage228

Dawn87 10. Mär 2008 15:55

Re: Delphi 2007 - Interner Fehler URW926
 
Hallo,

ja - der Fehler tritt leider auch auf wenn ich die Unit in ein neues Projekt einbinde.

So ein mist :|

Ich denke damit könnte ich die Laufzeit-Packages vorerst ausschließen oder?

Grüße
Stefan

mirage228 10. Mär 2008 15:59

Re: Delphi 2007 - Interner Fehler URW926
 
Zitat:

Zitat von Dawn87
Ich denke damit könnte ich die Laufzeit-Packages vorerst ausschließen oder?

Wenn Du in dem neuen Projekt keine Laufzeitpackages verwendest hast, dann ja. Enthält die Unit irgendwelche Besonderheiten? Was macht die Unit?

mfG
mirage228

Dawn87 10. Mär 2008 16:01

Re: Delphi 2007 - Interner Fehler URW926
 
Hallo,

ich konnte den Fehler inzwischen auf eine Funktion in der Unit zurückführen:

Delphi-Quellcode:
function TDATroniC.CreateFloat(byte1, byte2, byte3, byte4: Byte): Single;
type TFloat = record
          case byte of
            1: (Float : Single);
            2: (Byte: array [0..3] of byte);        // 1 Single/Float = 4 Byte
end;

var
  flt : TFloat;

begin
  flt.Byte[0] := Byte(Byte4);
  flt.Byte[1] := Byte(Byte3);
  flt.Byte[2] := Byte(Byte2);
  flt.Byte[3] := Byte(Byte1);

  Result := flt.Float;
end;
Diese Funktion wandelt 4 Bytes die über eine serielle Schnittstelle (in diesem Fall USB) kommen in eine Variable vom Typ "Single" um.

Hast Du eine Idee warum das nicht klappen könnte?

Grüße
Stefan

mirage228 10. Mär 2008 16:03

Re: Delphi 2007 - Interner Fehler URW926
 
Der Type-Cast der Variablen, die eh schon "Byte" sind, wiederrum nach Byte sieht etwas komisch aus... :gruebel:

Delphi-Quellcode:
  flt.Byte[0] := Byte4;
  flt.Byte[1] := Byte3;
  flt.Byte[2] := Byte2;
  flt.Byte[3] := Byte1;
mfG
mirage228

Dawn87 10. Mär 2008 16:16

Re: Delphi 2007 - Interner Fehler URW926
 
Hallo,

also in diesem Record zeigen die Bytes und der Single auf den selben Speicherbereich. Indem ich die Bytes zuweise, verändere ich auch den Single.

Gibt es da etwa eine bessere Methode?

Grüße
Stefan

mirage228 10. Mär 2008 16:22

Re: Delphi 2007 - Interner Fehler URW926
 
Zitat:

Zitat von Dawn87
also in diesem Record zeigen die Bytes und der Single auf den selben Speicherbereich. Indem ich die Bytes zuweise, verändere ich auch den Single.

Gibt es da etwa eine bessere Methode?

Hm also mir ist zumindest salopp keine andere Methode dazu bekannt. Mich hatte auch nicht die Methodik an sich gestört, ich dachte nur, dass der zusätzliche Type-Cast nach Byte überflüssig ist (in der Hilfe werden auch unzulässige bzw. doppelte Type-Casts als ursache für Interne Fehler aufgelistet...).
Eventuell hilft auch den TFloat-Typ nicht in der Prozedur zu definieren, sondern außerhalb...

mfG
mirage228


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz