Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Extended in Integer?


Bomania - So 06.04.03 10:46
Titel: Extended in Integer?
Hallo,

ich dachte eigentlich, mittlerweile wär ich mit allen "Inkompatible Typen..."-Fehlermeldungen durch. Aber wie ich sehe, gibt es da doch noch was. Integer erwartet, aber Extended vorgefunden:


Quelltext
1:
prog_RAM.Progress:= ((RAM[3]/1048576)*100)/(RAM[1]/1048576);                    


Kann mir da jemand weiterhelfen, und einen heißen Tipp geben?
Dankschö :)


Christian S. - So 06.04.03 11:27

Ich wette, wenn Du schon so viele Typen-Fehlermeldungen hattest, war auch schon mal eine dabei, wo eine ganze Zahl verlangt war, aber eine mit Nachkommastellen da stand! Hier ist es wieder so.

Funktionen wie Round, Trunc usw. sollten Dir helfen.


Raphael O. - So 06.04.03 12:29

alternativ könnteste auch die Variable, der was zugewiesen wird als Extended deklarieren...


Bomania - So 06.04.03 12:49

Verbraucht Extended nicht mehr Speicherplatz als ein Integer? Ich habe immerhin ein Array mit 6 Feldern.


Christian S. - So 06.04.03 13:03

@Fiji-Figher: wenn ich das mit dem "Progress" richtig sehe, wird da mit einem Progressbar oder ählichem gearbeitet. Der braucht auf jeden Fall Integer.

@Bomania: verstehe ich nicht. Wie ist Dein Array denn jetzt deklariert? Das Problem liegt, glaube ich, nicht in der Deklaration des Arrays, sondern darin, dass Du in dem von Dir geposteten Quelltext eine Divison durchführst, die ja nicht unbedingt eine ganze Zahl hervorbringen muss.


Bomania - So 06.04.03 13:30

Nein nein, mit dem Array bzw dessen Deklaration hat das ja tatsächlich nichts zu tun. Ich fand nur keine Funktion wie FloatToInt. Aber mit Round funktioniert das jetzt.


Raphael O. - So 06.04.03 15:41

@ PeterLustig stimmt, bei ner Progressbar macht Extended kein Sinn, aber es ging mir ehr um das theoretische.. (oder man könnte einfach auch sagen, dass ich nicht auf die Bezeichnungen geachtet habe :D)