Logo PC/GEOS auf dem Mac R-Basic GEOS-PCs Dateien GeoStream

R-Basic Schnupperkurs "Stoppuhr" - Teil 1

Dies ist die aktualisierte Version des 2-teiligen R-Basic Schnupperkurses. Der Kurs ist möglichst einfach und möglichst kurz gehalten. Vorkenntnisse sind nicht erforderlich.

Los gehts

Programmiereinsteiger haben es nicht leicht: Sie kennen viele der fachspezifischen Begriffe noch nicht so genau und können nur schwer einschätzen, welche Teile der umfangreichen Dokumentation sie zuerst lesen sollten, um für das erste eigene Programm gerüstet zu sein.

Der Schnupperkurs soll einen ersten Überblick über die grundsätzliche Vorgehensweise bei der Programmierung mit R-Basic geben. Das Beispiel-Programm ist auf die notwendigsten Befehle reduziert, um die Menge des Programmcodes gering zu halten.

Im 1. Teil des Kurses schreiben Sie die notwendigen Befehle für die Darstellung der Stoppuhr-Programmoberfläche und legen damit das Aussehens des Programms fest. Zusätzlich sind einige Zeilen Code (Wikipedia) notwendig, um einen ersten Teststart des Programms zu ermöglichen.

Der Code für die Funktion der Stoppuhr folgt im 2. Teil des Schnupperkurses.

Die Programmidee

Das Stoppuhr-Programm hat eine einzige Aufgabe: Ab dem Klick auf den Start-Button soll es die vergehende Zeit anzeigen. Um das Programm nicht unnötig kompliziert zu machen, liegt der Takt der Anzeige bei einer vollen Sekunde. Zwischenzeiten lassen sich nicht stoppen.

Die Programmierarbeit beginnt mit dem Festlegen der Programmoberfläche. Bei einer einfachen Stoppuhr sind die benötigten Grafik-Objekte schnell aufgezählt:

  • Das Programmfenster mit dem üblichen Button zum Beenden des Programms.
  • Ein "Ausgabefenster", das die Zeit anzeigt.
  • Zwei Buttons zum Bedienen des Programms.

Damit sind die grundsätzlichen Überlegungen auch schon abgeschlossen und es kann mit der Programmierung losgehen.

Installation der R-Basic Programmierumgebung

Falls Sie es noch nicht erledigt haben, laden Sie sich jetzt die aktuelle R-Basic Version von Rainer's Seite herunter und installieren Sie das Programm.

Ein neues R-Basic Dokument anlegen und abspeichern

Starten Sie R-Basic und wählen Sie im "Neu/öffnen-Dialog" die Punkte "PC/GEOS - Objekt-BASIC Programm" und "Neu: Ein neues BASIC-Programm anlegen" aus.

Bevor Sie mit der eigentlichen Arbeit beginnen, sollten Sie ihr leeres Dokument vorab einmal unter dem Namen Stoppuhr speichern. R-Basic legt das Dokument im Ordner "Dokument\R-BASIC" ab.

Die Programmoberfläche der Stoppuhr programmieren

Um im R-Basic-Dokument leichter den Überblick zu behalten, ist es in die vier "Seiten" UI-Objekte, BASIC-Code, DIM & DATA und Exports unterteilt.

Da Sie die Programmierung mit der Gestaltung der Programmoberfläche beginnen, klicken Sie im R-BASIC-Fenster unten links im Bereich Code anzeigen auf den Button UI-Objekte. UI ist die Abkürzung für User Interface und bedeutet übersetzt in etwa Benutzeroberfläche.

Die Programmoberfläche der Stoppuhr wird aus mehreren unterschiedlichen Objekten "zusammengesetzt". Einige, wie das Objekt Application (Programm), kommen nur einmal vor. Andere, wie das Objekt Button (Taste/Knopf), können so oft im Code vorkommen, wie sie benötigt werden.

Tragen Sie im R-Basic Editor die sieben für die Stoppuhr benötigten Objekte mit ihren Eigenschaften untereinander in die leere Seite des Bereichs UI-Objekte ein:


Die farbliche Hervorhebung der Befehle nimmt der Editor automatisch vor. Sie können daran sofort erkennen, ob Sie den Befehl richtig geschrieben haben. Das Einrücken der Zeilen innerhalb der Objekte ist nicht zwingend notwendig, dient aber der besseren Lesbarkeit und erleichtert somit das Programmiererleben :-)

Application

Application StoppuhrApp
  OnStartup = StartupHandler
  Children = Programmfenster
End OBJECT

Das Objekt Application muss im R-Basic-Dokument vorhanden sein. R-Basic weiß damit, dass dies ein R-Basic-Programm wird und keine Library. Der Name StoppuhrApp kann beliebig gewählt werden, er hat später keine Bedeutung mehr. Bei allen anderen Objekten ist ein individueller Name jedoch wichtig, damit R-Basic die Objekte unterscheiden kann.

Die Eigenschaft OnStartup signalisiert R-Basic, dass es sich bei der Stoppuhr um ein Objekt-Basic Programm handelt und nicht um ein Klassik-Basic Programm. Die im Unterprogramm StartupHandler untergebrachten Befehle werden bei jedem Start des Stoppuhr-Programms als erstes abgearbeitet.

Die Eigenschaft Children stellt die Verbindung zum nächsten Objekt her, welches ich Programmfenster genannt habe.

Primary

Primary Programmfenster
  Caption$ = "Stoppuhr"
  SizeWindowAsDesired
  NoFileMenu
  orientChildren = ORIENT_VERTICALLY
  Children = Anzeigefenster, Buttons
End OBJECT

Das Objekt Primary stellt das Hauptfenster des Programms dar. Hier werden u.a. die Einstellungen vorgenommen, die das Aussehen des Programmfensters beeinflussen.

Die Eigenschaft Caption$ zeigt im Kopf des Programmfensters einen Text an, in der Regel ist dies der Programmname.

Die Eigenschaft SizeWindowAsDesired macht das Programmfenster nur so groß, wie es für die Darstellung der Objekte notwendig ist.

Die Eigenschaft NoFileMenu verhindert die Darstellung einer Menüzeile im Programmfenster.

Die Eigenschaft orientChildren = ORIENT_VERTICALLY sorgt dafür, dass die Objekte untereinander angeordnet werden. Wie die beiden nebeneinander angeordneten Buttons im ScreenShot der Stoppuhr zeigen, können Objekte zu Gruppen zusammengefasst und innerhalb der Gruppe auch wieder anders ausgerichtet werden.

Die Eigenschaft Children stellt die Verbindung zu den Objekten her, welche ich Anzeigefenster und Buttons genannt habe. Die Reihenfolge in der Children-Zeile entscheidet über die Reihenfolge der Anordnung im Programm.

View

View Anzeigefenster
  hControl = HVC_NO_LARGER_THAN_CONTENT + HVC_NO_SMALLER_THAN_CONTENT
  vControl = HVC_NO_LARGER_THAN_CONTENT + HVC_NO_SMALLER_THAN_CONTENT
  Content = Anzeigeinhalt
End OBJECT

Das Objekt View stellt die Schnittstelle zwischen der Programmoberfläche und dem anzuzeigenden Inhalt des Objekts BitmapContent dar. Unter anderem wird die Größe des Anzeigefensters geregelt.

Die Eigenschaften hControl und vControl regeln in diesem Fall, dass das Anzeigefenster des Objekts View in der Höhe und der Breite weder kleiner noch größer als der Inhalt des Objekts BitmapContent dargestellt wird. Es gibt weitere Parameter.

Die Eigenschaft Content stellt die Verbindung zum Objekt BitmapContent her, welches ich Anzeigeinhalt genannt habe.

BitmapContent

BitmapContent Anzeigeinhalt
  DefaultScreen
  defaultColor = BLACK,YELLOW
  bitmapFormat = 302, 90, 8
End OBJECT

Das Objekt BitmapContent verwaltet den darzustellenden Inhalt des View-Objekts. Dies können Bilder oder Text sein.

Die Eigenschaft DefaultScreen sorgt dafür, dass alle Ausgaben standardmäßig an dieses BitmapContent-Objekt gehen.

Die Eigenschaft defaultColor bestimmt die Vordergrund- und Hintergrundfarben des Objekts.

Die Eigenschaft bitmapFormat legt die Größe und die Farbtiefe des Objekts fest.

Group

Group Buttons
  orientChildren = ORIENT_HORIZONTALLY
  DivideWidthEqually
  ExpandWidth
  Children = StartButton, StoppButton
End OBJECT

Das Objekt Group nimmt andere Objekte auf und ermöglicht deren Konfiguration/Ausrichtung unabhängig von vorher getroffenen Einstellungen.

Die Eigenschaft orientChildren = ORIENT_HORIZONTALLY platziert die beiden Objekte StartButton und StoppButton nebeneinander.

Die Eigenschaft DivideWidthEqually sorgt dafür, dass sich die beiden Buttons die vorhandene Gesamtbreite gleichmässig untereinander aufteilen.

Die Eigenschaft ExpandWidth passt das Objekt Group an die Breite des Programmfensters an.

Die Eigenschaft Children stellt die Verbindung zu den Objekten StartButton und StoppButton her. Die Reihenfolge in der Children-Zeile entscheidet über die Reihenfolge der Darstellung im Programm.

Button

Button StartButton
  Caption$ = "Starten"
  justifyCaption = J_CENTER
  ExpandWidth
  ActionHandler = StartButtonAction
End OBJECT

Das Objekt Button stellt einen Button dar.

Die Eigenschaft Caption$ beschriftet den Button mit dem angegebenen Text.

Die Eigenschaft justifyCaption = J_CENTER zentriert den angegebenen Text im Button.

Die Eigenschaft ExpandWidth stellt dem Button die gesamte zur Verfügung stehende Breite bereit.

Die Eigenschaft ActionHandler = StartButtonAction stellt die Verbindung vom Objekt StartButton zum Unterprogramm StartButtonAction her, welches sich auf der BASIC-Code-Seite des R-Basic-Dokuments befindet. Wenn Sie das Programm Stoppuhr aufrufen und auf den Button mit der Bezeichnung Starten klicken, springt das Programm zum Unterprogramm StartButtonAction und führt die dortigen Befehle aus.

Button StoppButton
  Caption$ = "Stoppen"
  justifyCaption = J_CENTER
  ExpandWidth
  ActionHandler = StoppButtonAction
End OBJECT

Das Objekt Button stellt einen Button dar.

Die Eigenschaft Caption$ beschriftet den Button mit dem angegebenen Text.

Die Eigenschaft justifyCaption = J_CENTER zentriert den angegebenen Text im Button.

Die Eigenschaft ExpandWidth stellt dem Button die gesamte zur Verfügung stehende Breite bereit.

Die Eigenschaft ActionHandler = StoppButtonAction stellt die Verbindung vom Objekt StoppButton zum Unterprogramm StoppButtonAction her, welches sich auf der BASIC-Code-Seite des R-Basic-Dokuments befindet.

Die notwendigen Befehle für den ersten Teststart hinzufügen

Soweit die Programmierung der Programmoberfläche. Abschließend müssen noch einige Befehle auf der BASIC-Code-Seite eingegeben werden, dann ist der 1. Teil des Schnupperkurses abgeschlossen.

Klicken Sie im R-BASIC-Fenster unten links im Bereich Code anzeigen auf den Button BASIC-Code. Der Editor zeigt wieder eine leere Seite an.

R-Basic prüft vor dem Start eines Programms u.a., ob alle im Code angegebenen Verbindungen zwischen den Objekten und deren Unterprogrammen (den Handlern) vorhanden sind. Damit R-Basic also keine Fehlermeldung ausgibt, tragen Sie die drei noch fehlenden Unterprogramme ein.

Systemaction

SYSTEMACTION StartupHandler
    
End ACTION

Das Unterprogramm StartupHandler muss in den Code eingefügt werden, da es im Objekt Application ja bereits angegeben wurde. Die Befehle, die ausgeführt werden, wenn das Programm startet, folgen im 2. Teil des Schnupperkurses.

Buttonaction

BUTTONACTION StartButtonAction
    
End ACTION

Das Unterprogramm StartButtonAction muss in den Code eingefügt werden, da es im Objekt StartButton bereits angegeben wurde. Die Befehle, die ausgeführt werden, wenn der Benutzer den Start-Button anklickt, folgen im 2. Teil des Schnupperkurses.

BUTTONACTION StoppButtonAction

End ACTION

Das Unterprogramm StoppButtonAction muss in den Code eingefügt werden, da es im Objekt StoppButton bereits angegeben wurde. Die Befehle, die ausgeführt werden, wenn der Benutzer den Start-Button anklickt, folgen im 2. Teil des Schnupperkurses.

Das Stoppuhr-Programm starten

Das war's erst einmal mit der Programmierung des Basic-Codes.

Speichern Sie Ihr R-Basic Dokument. Wählen Sie im Menü Programm den Punkt Programm starten. Wenn R-Basic keine Fehler meldet und demnach mit dem Programmcode soweit alles OK ist, sollte Ihr Programm Stoppuhr nun auf dem Bildschirm erscheinen.

Beenden Sie das Programm wieder und wählen Sie im Menü Programm den Punkt Eigenständiges Programm anlegen. Nun wird R-Basic einen Moment beschäftigt sein und anschließend das fertige Programm Stoppuhr im World-Verzeichnis ablegen.

Wenn Sie das Programm aufrufen und den Starten-Button anklicken, passiert noch nichts weiter, da in dem dafür zuständigen Unterprogramm StartButtonAction ja noch keine Befehle eingetragen sind. Dies folgt erst im 2. Teil des Schnupperkurses.

Weiter zum 2.Teil des Schnupperkurses.

Fragen / Kommentare können Sie im InfoBase-Forum posten, oder per eMail senden.

© Bernd Mützel Aktualisiert 20.08.2015 Impressum Zum Seitenanfang