Script-Klassen
- Former user (Deleted)
- Dennis Balzuweit
Deklaration
Die Entwicklung eigener Script-Klassen erfolgt in einer separaten Unit (auch Include benannt). Je Klasse ist eine eigene Unit erforderlich. Die Verwendung von Includes ist nur im C4 Umfeld möglich.
Eine Klassen-Unit wird durch die Compiler-Direktive {$CLASS TClassName} als solche gekennzeichnet.
Alle in der Klassen-Unit deklarierten globalen Variablen, werden als Klassen-Properties behandelt und können so verwendet werden. Alle Funktionen und Prozeduren sind Klassen-Methoden. Der Globale Code Bereich (begin end – Block) dient als Initializer.
Hier eine beispielhafte Klassendeklaration (Include-Name im c4: „Example“ bzgl. der Uses Einbindung):
// ================================================================================== {$CLASS TExampleClass} // ================================================================================== // TExampleClass properties // ================================================================================== var TestMode : Boolean; Test : Integer; // ================================================================================== // TExampleClass methods // ================================================================================== procedure Init; begin end; // ---------------------------------------------------------------------------------- function Execute(Start : Boolean) : Boolean; begin Result := False; end; // ================================================================================== // TExampleClass initializer // ================================================================================== begin TestMode := False; Test := 0; end;
Verwendung
Um eine Script-Klasse verwenden zu können muss Sie dem Compiler bekannt gemacht werden. Dies geschieht in zwei Schritten:
- Aufnahme der Klasse als Include am entsprechenden Script
- Deklaration im Script über Uses Anweisung
Beispiel:
uses Example; var ExampleClass : TExampleClass; begin ExampleClass := TMyExampleClass.Create; try ExampleClass.TestMode := true; ExampleClass.Init; ExampleClass.Execute(true); finally ExampleClass.Free; end; end;
Einschränkungen
Script-Klassen verfügen über keinen Destruktor. Diese muss selbst in Form einer aufzurufenden Funktion implementiert werden.