Runtime
BeschreibungRuntime Variable Runtime #Konstante Runtime Procedure() Deklaration Runtime Enumeration Deklaration
Für fortgeschrittene Programmierer. Runtime wird verwendet, um eine zur Laufzeit (Runtime) zugängliche Liste von Programmobjekten wie Variablen, Konstanten oder Prozeduren zu erhalten. Sobald ein Programm kompiliert wurde, hat es keine Variablen-, Konstanten- oder Prozedur-Bezeichnungen ("Labels") mehr, da alles in Binärcode umgewandelt wurde. Runtime zwingt den Compiler, eine zusätzliche Referenz für ein bestimmtes Objekt hinzuzufügen, damit dieses für und über die Runtime Bibliothek verfügbar ist. Die Objekte können mit Hilfe ihrer String-Referenz manipuliert werden, auch wenn das Programm kompiliert wurde.
Um die Verwendung von Runtime zu veranschaulichen: Die Dialog Bibliothek verwendet dies, um auf die einem Gadget zugewiesene Ereignis-Prozedur zuzugreifen. Der Name der für den Event-Handler zu verwendenden Prozedur wird in der XML-Datei angegeben (welche im Text-Format vorliegt), und dann verwendet die Dialog-Bibliothek GetRuntimeInteger(), um die Prozedur-Adressen zur Laufzeit aufzulösen. Es ist nicht notwendig das Programm neu zu kompilieren, um diese zu ändern.
Eine weitere Anwendung wäre das Hinzufügen einer kleinen Realtime-Skriptsprache zum Programm, welche eine einfache Änderung von freigegebenen Variablen durch die Verwendung von konstanten Werten zur Laufzeit ermöglicht. Während dies auch manuell durch den Aufbau einer Map von Objekten erreicht werden kann, ermöglicht die Verwendung des Runtime Schlüsselworts dies auf standardisiertem und einheitlichem Weg zu tun.
Beispiel: Procedure
Runtime Procedure OnEvent() Debug "OnEvent" EndProcedure Debug GetRuntimeInteger("OnEvent()") ; wird die Prozedur-Adresse anzeigen
Beispiel: Enumeration
Runtime Enumeration #Constant1 = 10 #Constant2 #Constant3 EndEnumeration Debug GetRuntimeInteger("#Constant1") Debug GetRuntimeInteger("#Constant2") Debug GetRuntimeInteger("#Constant3")
Beispiel: Variable
Define a = 20 Runtime a Debug GetRuntimeInteger("a") SetRuntimeInteger("a", 30) Debug a ; die Variable wurde verändert