Syntax
Auskommentieren/ Remarks
APIs Befehls/ Zeilentrennung C-Style Create-Funktionen Const/ vordefinierte Konstanten Export/ Noexport FOR-Schleifen Geschweifte Klammern Include/#Include OOP Parametertrennzeichen Prä- und Postfixe Variablendeklaration Zuweisungs/ Vergleichsoperatoren Auskommentieren/RemarksDas Auskommentieren zeilenübergreifender Blöcke mittels /* text */ und zeilenabschliessendes Auskommentieren mit //. APIsAPIs können einfach getippt werden, müssen nicht deklariert werden, auch ändert sich nicht die Schreibweise beim Funktionsaufruf: print timeGetTime() Kollidiert einmal ein API-Schlüsselwort, dann einfach per Tilde-Zeichen auf die API zeigen: print ~MessageBox(0,"Test","Hallo",0) Egal welche Schreibweise, alle APIs werden in schnellere Calls konvertiert deren Funktionsadresse bereits zu Programmbeginn bezogen werden - was auch für Aufrufe von APIs gilt welche nachträglich/zusätzlich per Headerdatei (*.ph) deklariert wurden und ebenso gilt für native Funktionen. Daraus resultieren eine deutlich höhere Programmgeschwindigkeit und mehr Sicherheit. Befehls/ZeilentrennungXPSE ermöglicht das in anderen Sprachen typische Semikolon ";" und den Doppelpunkt ":", um Anweisungen voneinander zu trennen und Backslash "\" um Zeilen miteinander zu verknüpfen. Geschweifte Klammern "{" "}" können ebenfalls verwendet werden, um Anweisungen voneinander zu trennen. C-StyleDer C-Style ergibt sich aus:
Auskommentieren per // und /* */ Create-Funktionen
createBlackframe(... createBlackrect(... createButton(... createCentertext(... createChoicebox(... createDateedit(... createDefbutton(... createDialog(... createEdit(... createGroupbox(... createHtmlbox(... createIconbutton(... createLeftbutton(... createListbox(... createMultiedit(... createPicbutton(... createRighttext(... createSortedListbox(... createSpinedit(... createStatic(... createSunkencentertext(... createSunkenrighttext(... createSunkentext(... createTabcontrol(... createText(... createTimeedit(... createToolwindow(... createWindow(... ConstMit Const werden Konstanten oder ganze Zeichenfolgen wie auch Syntaxblöcke definiert. Die Verwendung dieser Konstanten, z.B. statt der Def -Konstanten, ist deutlich schneller, da diese nicht zur Laufzeit, sondern beim Kompilieren umgesetzt werden. const irgendwas="hallo" const irgendwas1=55510+myProc("test")
Vordefinierte KonstantenString XPSECOMPILETIMESTAMPSTRINGDatum und Uhrzeit der Programmkompilierung im Format yyyymmddHHMMSS String XPSESOURCECODEFILENAMESTRINGDateiname des kompilierten Programmes einschliesslich Pfad. String XPSEVERSIONSTRINGVersionsstring von XPSE - z.B. "0.1.7g". Long XPSENUMSOURCECODELINESLONGAnzahl der relevanten geladenen Quelltextzeilen Export/NoexportIn Units verwendbares Schlüsselwort für kleine in die .def-Datei zu erportierende Hilfetexte: proc myProc export "myProc ist für ..."Eine mit noexport gekennzeichnete Funktion wird nicht in die def-Datei exportiert. FOR-SchleifenFOR-Schleifen nach Pascal-Syntax mit optionalem Step und DownTo. for l=1 to 10 do begin ... endDie in XProfan eingebauten WhileLoop-Schleifen sind schneller und vorzuziehen. Geschweifte KlammernGeschweifte Klammern wie auch aus C oder PHP bekannt können wie gewohnt verwendet werden um Blöcke für if, while, whileloop, repeate und proc zu definieren. if (10/*anmerkung*/==20) { print "Hallo" } else { ... Include/#IncludeInkludiert automatisch Quelltextdateien, Headerdateien und Units. Je nach Dateiendung wird entsprechend eingebunden. Wird "include" mit Raute angeführt: "#include", dann wird die angegebene Datei nicht eingebunden, wenn sie bereits zuvor schon einmal mit "#include" eingebunden wurde. (Wird nur ein Mal eingebunden, ähnlich wie PHP's "include_once".) OOPInnherhalb von Klassen kann auf Methoden der gleichen Klasse mit "this->" zugegriffen werden (erspart das wiederholte Tippen der Klassenbezeichnung) und ausserhalb von Klassen kann auf Methoden mittels Doppeldoppelpunkt "::" zugegriffen werden, erspart Raute-Punkt "#.". Einheitliches ParametertrennzeichenWie folgt kann für diese Befehle, neben der regulären Schreibweise mit unterschiedlichen Parametertrennzeichen, als Parametertrennzeichen auch einzig das Komma verwendet werden: ARC X1,Y1,X2,Y2,X3,Y3,X4,Y4 CHORD X1,Y1,X2,Y2,X3,Y3,X4,Y4 CLIPLOADBMP X1,Y1,X2,Y2,X3,Y3,X4,Y4 COPY S1,S2 COPYBMP X1,Y1,X2,Y2,X3,Y3,N1[,N2] COPYPIC H,X1,Y1,X2,Y2,X3,Y3,N1[,N2] COPYSIZEDBMP X1,Y1,X2,Y2,X3,Y3,X4,Y4,N COPYSIZEDPIC H,X1,Y1,X2,Y2,X3,Y3,X4,Y4,N DRAWPIC H,X,Y,N1[,N2] DRAWPIC I,S,X,Y,N1,N2 DRAWPIC S,X,Y,N1[,N2] DRAWSIZEDEXTBMP I,S,X1,Y1,X2,Y2[,N] DRAWSIZEDPIC H,X,Y,DX,DY[,N] DRAWSIZEDPIC I,S,X,Y,DX,DY,N ELLIPSE X1,Y1,X2,Y2 LINE X1,Y1,X2,Y2 LOADBMP S,X,Y[,N] LOADSIZEDBMP S,X1,Y1,X2,Y2[,N] MCOPYBMP X1,Y1,X2,Y2,X3,Y3,N1[,N2] MCOPYSIZEDBMP X1,Y1,X2,Y2,X3,Y3,X4,Y4,N MOUSE (X1,Y1,X2,Y2) PIE X1,Y1,X2,Y2,X3,Y3,X4,Y4 RECTANGLE X1,Y1,X2,Y2 ROUNDRECT X1,Y1,X2,Y2,X3,Y3 SETWINDOWPOS W,X,Y[,DX,DY[,N]] TBOX X1,Y1,X2,Y2,N WINDOW X1,Y1[,X2,Y2]Wird die Kommaschreibweise genutzt, müssen alle Parameter mit Komma getrennt sein - es kann nicht innerhalb einer Befehlsparameterkette zwischen Parametertrennzeichenschreibweisen gewechselt werden. Keine Prä- und PostfixeKeine Prä- und Postfixe für Variablen und Systemvariablen, wo sie dann nicht notwendig sind, wenn es keine gleichnamige Funktion gibt. VariablendeklarationVariablen ohne Postfix können im C-Style deklariert werden: long a,b,c int a,b,c string a,b,c float a,b,c print a,b,c Arrays ebenso einfach: longs a,b,c ints a,b,c strings a,b,c floats a,b,c print a[0],b[0],c[0] Variablen mit Postfix wie gewohnt per Declare und Var deklarieren, siehe: Datentypen. Zuweisungs/ Vergleichsoperatoren
|