WHILELOOP erweitert
WHILELOOP N1%[,N2%[,N3%]]
Es gibt jetzt einen dritten Parameter, der die Schrittweite angibt, sodaß jetzt die Funktionalität des FOR aus Basic oder Pascal gegeben ist. Die Schrittweite kann auch negativ sein. Es wird nun überprüft, ob die Parameter sinnvoll sind. 0 als Schrittweite ist ebensowenig zugelassen, wie eine Schrittweite in die falsche Richtung.
SET-Funktionen
SET("MessageMode",N%)
Diese Funktion gibt es schon seit 7.0e. Beschreibung siehe dort.
SET("RandSeed",N%)
Der Startpunkt des Zufallzahlengenerators wird auf einen bestimmten Wert gesetzt. Damit ist es möglich, die Folge von Zufallszahlen zu wiederholen, da jeder Wert
für Randseed immer die gleiche Zufallszahlenfolge erzeugt. Normalerweise wird beim Start von PROFAN Randseed immer mit 0 initialisiert, sodaß auch da immer die gleichen Zufallszahlen erzeugt werden, wenn man nicht mit RANDOMIZE Randseed auf einen weitgehend zufälligen Wert (abgeleitet aus den Millisekunden, die der Rechner läuft) setzt.
SET("Errorlevel",N%)
Diese Funktion ersetzt den Befehl SETERRORLEVEL. Das Ergebnis der Funktion ist der vorherige Errorlevel. N% hat die gleiche Bedeutung, wie beim altenb Befehl SETERRORLEVEL.
SET("FastMode",N%)
Mit N%=1 wird der FastMode eingeschaltet und mit N%=0 wieder ausgeschaltet. Diese Funktion entspricht der bisherigen "Krücke" SETERRORLEVEL -2. Im sogenannten
FASTMODE wird as PROFAN-eigene erweiterte Messagehandling abgeschaltet. Dieses findet normalerweise im Interpreter nach jeder und in der Runtime nach jeder 20. Zeile statt. Wird es abgeschaltet sind PROFAN-Programme möglich, die nur noch durch Ausschalten des Rechners beendet werden können, denn wenn man in einer Schleife z.B. nicht selber für das Messagehandling (etwa über Waitinput, etc.) sorgt und versehentlich eine Endlosschleife programmiert hat, hat weder der Anwender
noch Windows selbst Zugriff auf das Programm!
HILFSFUNKTIONEN für 32-Bit-Fließkommazahlen
F& = SINGLE(F!)
Bei API-Funktionen sind oft alle Parameter 32-Bit groß, auch die für Fließkommazahlen. Das trifft insbesondere auch für die Direct-X-API zu. Bisher mußte in solchen Fällen eine umständliche Umwandlung der PROFAN-internen 64-Bit-Fließkommazahlen in das passende Format erfolgen. Mit dieser Funktion wird es erheblich vereinfacht: Die 64-Bit-Fließkommazahl (Genauigkeit bis 15 Stellen) wird
in eine 32-Bit-Fließkommazahl (Genauigkeit bis 8 Stellen) umgewandelt. Das Ergebnis (Bitmuster) der Umwandlung wird in einem Longint (32 Bit) gespeichert und kann so an entsprechende API-Funktionen übergeben werden.
ACHTUNG: Mit dem Ergebnis kann natürlich NICHT gerechnet werden, da PROFAN diese Bitfolge als Integer interpretieren würde und somit zu einem unvorhersehbaren, aber sicher falschen Ergebnis kommen würde. (Lediglich die 0 hat als Longint und 32-Bit-Fließkommazahl die gleiche Bitfolge.) Eine DLL-Funktion, die einen 32-Bit-Fließkommawert erwartet, wird die Bitfolge allerdings korrekt interpretieren.
F! = DOUBLE(F&)
Das ist die dazugehörige Umkehrfunktion, um z.B. ein Ergebnis im 32-Bit-Format korrekt zu interpretieren.
Fortsetzung folgt ...
|