Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Variant Umwandlungsfehler nach Delphi 6 Updates (https://www.delphipraxis.net/16021-variant-umwandlungsfehler-nach-delphi-6-updates.html)

ak1 9. Feb 2004 09:52


Variant Umwandlungsfehler nach Delphi 6 Updates
 
Hallo Leute,

ich habe eine anwendung in Delphi 6 geschriben, welche auch gut funktioniert, nun habe ich die Delphi 6 Updates installiert (Updatepack2 und RTL 2,3) jetzt bekomme ich mitten im Programm die Fehlermeldung: Variante des Typs(Null) konnte nicht in Typ (double) konvertiert werden. Vor dem Update geht es aber ohne Probleme, das habe ich schon mehrfach getestet, in Delphi 7 übrigens das gleiche Problem. Es treten noch andere Fehler auf bei denen ich glaube, dass einige Variablen nicht mehr korrekt gesetzt werden. Da das Programm sehr umfangreich ist und ich das nur weiterentwickelt habe, wollte ich mal fragen ob jemadn von Euch schonmal das gleiche Problem hatte.

Gruß

P.S. im Deplhi-Forum poste ich das genze auch ;-)

ak1 9. Feb 2004 10:04

Re: Variant Umwandlungsfehler nach Delphi 6 Updates
 
Das muss etwas mit der DB.pas zu tunhaben und der umwandlung eines TFloatFields in ein integer, was jetzt wohl nach den Updates nicht mehr möglich ist.

ak1 9. Feb 2004 10:23

Re: Variant Umwandlungsfehler nach Delphi 6 Updates
 
Das Problem ist wohl, dass die Paradoxtabellenfelder immer den Wert Null haben obwohl dies eigentlich nicht sein dürfte.
Die funktion sieht dann so aus

Code:
tbltabelle1Feld1  :TFloatField;

function convertToStation: Boolean;
begin
if field=tbltabelle1Feld1 then begin

//hier folgt eine Bearbeitung des Feldes tbltabelle1Feld1 aber field ist immer NULL
end;

end;

ak1 9. Feb 2004 10:59

Re: Variant Umwandlungsfehler nach Delphi 6 Updates
 
Sooo Leute,
der Fehler ist gefunden und er lag natürlich wo anders :?

Das Programm ist ein eine Schleife gesprungen in die es nicht springen sollte:
Die Bedingung lautete

Delphi-Quellcode:
if (state=dsEdit) or (state=dsInsert) and field.value<>Null then
...

jetzt lautet die Bedingung
Delphi-Quellcode:
if ((state=dsEdit) or (state=dsInsert)) and (field.value<>Null) then
...


das macht auch Sinn,
nur ist es sehr verwunderlich, dass Delphi 6 ohne Updates nicht in diese Schleife gesprungen ist,
aber Delphi 6 mit Updates und Delphi 7 springen in diese Schleife.
Hat da jemand eine Erklärung von Euch?
state und field beziehen sich auf eine Paradox Tabelle, welche über die BDE angesprochen wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 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