![]() |
MakrospracheEin Makro hat grundsätzlich folgenden Aufbau:makro MakronameDabei ist 'Makroname' ein Platzhalter für den Namen des Makros. 'Kommando_1', ..., 'Kommando_n' stehen für jeweils ein Kommando (Zuweisung, if-Kommando, ...). Eine Zeile darf nur ein Kommando enthalten, Einrückungen können beliebig vorgenommen werden. Makros abbrechenDas Wichtigste zuerst. Wärend der Ausführung eines Makros wird - es sein denn, man entscheidet sich explizit dagegen, s.u. - ein Button eingeblendet, der es ermöglicht, die Ausführung abzubrechen. Dies kann insbesonders während der Entwicklung vom Makros hilfreich sein. Das Einblenden des Buttons ist aber mit einem Overhead verbunden, der bei kurzen Makros nicht akzeptabel ist. Aus diesem Grund kann man die Anzeige des Buttons über den Befehl nonStop explizit unterbinden.Variablen und StacksZum Speichern von Zeichenketten und Zahlen bietet Ed42 Variablen an. Zusätzlich werden Stacks bereitgestellt, auf denen Zeichenketten oder Zahlen abgelegt werden können.Variablen können nicht frei definiert werden. Stattdessen steht ein fester Satz an Variablen zu Verfügung:
BefehleBefehle erlauben die Manipulation von Variablen und Stacks sowie die Modifikation von Texten und der Cursorposition. Darüberhinaus können Funkitonalitäten des Editors - beispielsweise das Suchen/Ersetzen - über Makrobefehle angesteuert werden.
Kontrollstrukturen
Beispielemakro forSchleifeA$ := inputStr('Schleifenvariable:') U := inputInt('Untere Grenze:') O := inputInt('Obere Grenze:') X := xKoord Y := yKoord B$ := con('for ', con(A$, con(' := ', intToStr(U)))) if U < O B$ := con(B$, ' to ') else B$ := con(B$, ' downto ') endIf B$ := con(B$, con(intToStr(O), ' do begin')) text.insertLine(B$) text.insertLine('') cursor.goTo(X, add(Y,2)) text.insert('end;') cursor.goTo(add(X,3), add(Y,1)) endMakro makro repeat
makro nbo
A$ := text.getSlice(B,E)
text.deleteSlice(B,E)
|
Last Change: 27.10.2001
© Copyright by Stefan Brüning. All rights reserved |