yab EinsteigertutorialSystem: BeOS, Haiku, Zeta Inhalt Was ist yab? Der yab Interpreter ist ein BASIC Dialekt, welcher eine Weiterentwicklung des auf Windows, Linux und Playstation2 erhätlichen YABASIC ist. yab wurde für BeOS und ZETA optimiert und enthält daher viele zusätzliche Befehle. Mit Hilfe dieser Programmiersprache ist es sehr einfach kleine und sogar komplexe Programme zu erstellen. Ein gutes Beispiel dafür ist das in ZETA enthaltene Brennerprogramm JABA. Wie einfach es ist eine Anwendung mit yab zu erstellen, werden Sie im weiteren Verlauf dieses Tutorials feststellen. Sie werden in diesen Tutorial keine komplette Anwendung erstellen, sondern einfache Grundkenntnisse erlernen mit dem Sie einen einfachen Start in der Anwendung von yab erfahren werden. zurück zur Übersicht Erstellen eines Programmfensters Ein Programmfenster erstellen ist einfach, dazu benötigen Sie nur den Befehl window open zu verwenden und diesem ein paar Angaben über Größe, Name und interne Bezeichnung anzufügen. window open 50,50 to 600,500, "View", "Fenstername" Ein Fenster wird geöffnet, welches 50 Pixel vom linken Bildschirmrand und 50 Pixel vom oberen Bildschirmrand beginnt. Nach dem to werden der rechte und untere Fensterrand angegeben. Damit haben wir eine Fenstergröße von 550 Pixel in der Breite und 450 Pixel in der Höhe. Wie Sie schon sehen wird nicht direkt die Größe des Fensters angegeben, sondern nur die Koordinaten auf dem Bildschirm. Nach den Angaben für die Fenstergröße folgt der Name des Fensters (hier: "View") für den internen Gebrauch. Über diesen Namen könne Sie das Fenster ansprechen um es beispielsweise zu schließen oder einen Eintrag einzufügen. Bei Fenstername geben Sie den Namen an, der dann als Fensterbezeichnung im TAB des Fensters steht. Also der Name, der vom Anwender gesehen wird. zurück zur Übersicht Inloop - Dauerhafte Abfrage von Funktionen Als nächstes erstellen Wir einen Inloop, welcher uns bei der Ausführung immer wiederkehrender Anforderungen im Programm behilflich ist. Alles was in diesem Loop steht wird solange das Programm läuft immer wieder Abgefragt. Alles was außerhalb des Loops steht wird entweder nur einmal oder nur durch dessen Aufruf ausgeführt. Hierbei ist zu beachten, daß alles was vor dem Loop steht ausgefürt wird bevor der Loop gestartet wird und alles was hinter dem Loop steht nur ausgefürt wird, wenn es Angesprochen wird.
inloop = true Das schließen des Fensters über den TAB ist dazu ein gutes Beispiel, denn diese Funktion sollte jederzeit im Programmablauf auswählbar sein. Fügen Sie dazu folgenden Code in den Bereich ein, der im Loop mit "Hier werden die Einträge in den Loop eingefügt." angegeben ist. Hierzu verwendne wir den Befehl case, welcher mit Angabe seines Namens beginnt und mit break beendet wird.
case "View:_QuitRequested|"
Wir der Schließen Bereich des TABs angeklickt, wird dies mit Name des Fensters (View) und der dazugehörigen Anfrage ausgegeben (hier _QuitRequested). Das was zwischen case "View:_QuitRequested|" und break steht, wird bei Aufruf dieses Befehls ausgeführt. Da wir das Fenster schließen möchten, wird über window close "View" das Fenster View geschlossen. zurück zur Übersicht Fenstermenübar Zu einem Fenster gehört in den meißten Fällen auch eine Menübar. Um diese menübar einzurichten, fügen sie folgenden Code oberhalb des inloop und unterhalb des öffnen des Programmfensters ein, um dieses immer Sichtbar zu haben. menu "Program", "Quit", "Q", "View" Auch bei diesem Beispiel nehmen wir uns dem Beenden des Programms an. Mit diesem Code erstellt wir eine Menübereich, der Program heiß und unter diesem Punkt liegt der Unterpunkt Quit (Beenden). Die Angabe des Q ist die Angabe des Tastaturkürzels (Alt + Q) mit dem man neben dem Menüaufruf das Programm beenden kann. Die letze Angabe View ist das Fenster in welches das Menü angezeigt wird. Um weitere Menübereiche einzubringen, müssen hier nur weitere Zeilen eingefügt werden, die genauso aufgebaut sind. Ändern Sie den ersten Namen wird automatisch ein zweiter Menübereich eingerichtet. Selbiges gilt für die Unterbereiche. Für diesen Menüpunkt muss nun auch ein weiterer Eintrag in dem Inloop erfolgen. Dies sieht dann wie folgt aus:
case "View:Program:Quit|"
Da wir das Schließen des Fensters über die Menübar aufrufen, setzt sich die Ausgabe des Befehls so zusammen wie die Reihenfolge der Angewählten Menüauswahl. Spich das Programmfenster (View) auf welchen das Menü liegt, der Menübereich Program und der Untermenübereich Quit. zurück zur Übersicht Zusätzliche View setzen Um nicht immer das Programmfenster zu schließen um eine neue Ansicht zu laden, empfiehlt es sich, auf das Hauptfenster ein weiteren View zu setzen. Dieser sollte wenn Sie eine Menübar verwenden ca. 10 Pixel tiefer anfangen als das Programmfenster als oberen Rand hat. view 0,10 to 550,450, "View1", "View" Das setzen des Views ist ählich dem öffen eines Fensters. Wir erstellen auf dem Programmfenster View einen View Namens View1. Der View beginnt ausgehend von der Programmfenstergröe am linken Rand von 0 Pixel und von oberen Rand mit 10 Pixel (wegen der Menübar). Der rechte und untere Rand sind die Angaben nach dem to. Der View1 wird dort eingefügt wo er angezeigt werden soll, in unserem Fall ist die direkt unterhalb des Programmfensters. zurück zur Übersicht Text anzeigen Auf diesen View1 werden wir jetzt einen Text anzeigen. draw text 20, 20, "Dies ist eine Textausgabe", "View1" Mit draw text geben wir an das wir einen Text anzeigen möchten. Über die Angaben 20,20 geben wir die Koordinaten des Textes auf dem View an. Also 20 Pixel vom linken Rand und 20 Pixel vom oberen Rand. Der darauf folgende Text ist der Text, der auf dem View angezeigt wird. Hierbei wirk kein automatischer Zeilenumbruch gemacht, so daß dieser selber erstellt werden muss, indem man den Text der Anzeigeflächte (View) anpaßt. Am Ende folgt die Angabe des Views, auf welchen der Text angezeigt werden soll. zurück zur Übersicht Grafik anzeigen Um eine Grafik anzuzeigen fügen wir folgenden Code unterhalb des Views ein, auf welchen wir diese Anzeigen möchten (View1). err = draw image 150,30, "/Pfad/zur/Grafik/Bild.jpg", "View1" Mit err = draw image geben wir an, daß wir eine Grafik einfügen möchten. Wie beim text, folgen die Koordinaten, an welchen die Grafik angezeigt werden soll. Nach der Angabe des Bildstandortes, wird der Dateipfad und die Datei angegeben (/Pfad/zur/Grafik/Bild.jpg), welche Sie darstellen möchten. Auch am Ende dieses Befehls folgt die Angabe des Views, auf welches die Grafik angezeigt werden soll. zurück zur Übersicht Schaltflächte (Button) anzeigen. Was ist ein Programm ohne Schaltfläche für die Programmspezifischen Funktionen. Ob nun als Weiterleitung zu einen weiteren Programmanschnitt oder zum Ausführen von Aufgabestellungen, ein Button wird sehr oft verwendet. button 400, 400 to 450, 420, "interner_Buttonname", "angezeigter_Buttonname", "View1" Wir erstellen einen Button bei 400 Pixel vom linken Viewrand und 400 Pixel vom oberen Viewrand. Die Größe des Buttons ergibt sich aus den Angaben der folgenden Angaben für den rechten (450 Pixel) und unteren (420 Pixel) Rand des Buttons. Wie das Bespiel schon angibt, folgt der Name des Buttons für die interne verwendung und daruf der Name, der auf dem Button zu sehen ist. Die Funktion des Buttons wird wie beim Beenden des Programms, im Inloop mit einem case Befehl angegeben.
case "View1:interner_Buttonname|"
Hier wird wie zuvor bei der anderen case Verwendung der View und der interne Name des Buttons angegeben. Auch in diesem Fall verwenden wir den window close Befehl um das Programm zu beenden. Der Button könnte jetzt zum Beispiel auch einen weiteren Text, Button, Grafik anzeigen oder ein weiteres Fenster oder View öffnen, bzw. schließen. zurück zur Übersicht Programm im Terminal testen. Wenn sie Ihr Programm zwischendurch testen, können Sie Ihren Quellcode einfach mit yab im Terminal ausführen. yab /Pfad/zur/Quelldatei.yab Geben Sie einfach im Terminal yab ein und machen dahinter ein Leerzeichen. Nun schieben Sie einfach die Quelldatei vie Drag and Drop auf den Terminal, damit die Datei mit dessen Dateipfad dort angezeigt wird und drücken die Return- Taste um Ihr Programm auszuführen. Sollten Sie die yab IDE verwenden, können Sie auch über dessen Menübar auf Program und dort auf Run in Terminal gehen um das Porgramm auszuführen. zurück zur Übersicht Programmcode binden. (nur ZETA) Haben Sie Ihr Programm fertig gestellt, muß dieses nur noch gebunden werden. Durch das binden des Programmcodes, wird dieses für andere nicht mehr unmittelbar einsehbar.. Öffnen Sie den Terminal und geben folgendes ein: yab -bind "Name des Programms" /Pfad/zur/Quelldatei.yab Mit yab -bind gegen Sie an, daß Sie ein Quellcode binden möchten. Der Name des Programms ist der Name der Datei die nach dem Binden in Ihrem Homeverzeichnis anzufinden ist. Den Quellcode könne Sie wie beim testen einfach via Drag and Drop in den Terminal zeiehen. zurück zur Übersicht Hilfe beim Programmieren - Durch die große Ähnlichkeit zu YABASIC, ist es immer empfehlenswert, in dessen Dokumentation nach Lösungen zu suchen. - yab selber bingt einige Example Codes mit, die verschiedene Funktionen vorführen, diese finden Sie im yab Verzeichnis. - Hier auf der BeSly befindet sich eine yab Programmierhilfe, über welche viele Funktionen beschrieben werden. zurück zur Übersicht Bereitgestellt durch BeSly, der BeOS & Zeta Wissensbasis. |