R-BASIC - Einfach unter PC/GEOS programmieren
Download R-BASIC Dateien


 

IDE Download
Zusätzliche Libraries
Liste aller Beispiele
Liste aller verfügbaren Objekte
Tutorials, Zusätzliche
Informationen & Dateien
Weitere Beispiele
Beschreibung
aktuelle Version
Versions-History

 

English   Click here for an English version of this page.
 

 

R-BASIC Version 1.0.3 - Mai 2023

Direkt zum Download

Überblick über die R-BASIC Konzepte


R-BASIC ist eine neue Programmiersprache für PC/GEOS. Sie ist einfach zu lernen und einfach zu benutzen, so dass Anfänger gut mit ihr zurecht kommen. Gleichzeitig ist sie so leistungsfähig, dass auch anspruchsvolle Projekte realisierbar sind. R-BASIC erfordert mindestens eine PC/GEOS Version ab GeoWorks 2.01 (oder höher). Empfohlen wird eine der aktuellen BreadBox Ensemble Versionen.

Warum gerade ein BASIC?
  1. Einfache Syntax. Die BASIC Syntax ist leicht zu erlernen, der Funktionsumfang von R-BASIC ermöglicht trotzdem die Programmierung von umfangreichen und professionellen Projekten.
  2. Kompatibilität. Es gibt eine Menge "alter", aber trotzdem interessanter Programme, die nur darauf warten, nach R-BASIC portiert zu werden.
  3. Man kann quasi jedes beliebige BASIC Handbuch hernehmen, um die Grundlagen der (R-)BASIC Programmierung zu erlernen. Die Details mögen verschieden sein, aber die Konzepte, wie man programmiert, bleiben gleich.

Ist R-BASIC objektorientiert?

Ja, Sie haben Zugriff auf das leistungsfähige PC/GEOS Objekt-System. Die in R-BASIC verfügbaren Objektklassen finden Sie hier aufgelistet.
Auf der anderen Seite bietet R-BASIC eine "klassischen" Modus, in dem ein alter Homecomputer simuliert wird. Dieser Modus macht es einfacher alte Programme zu portieren, ist aber möglicherweise auch ein guter Ausgangspunt für Programmieranfänger.

Wie arbeitet R-BASIC?

Nachdem Sie ihren Code geschrieben haben müssen Sie ihn "compilieren". Dabei wird die Synatx geprüft und eine Sequenz von "Tokens" erzeugt, die vom Executer "interpretiert" (ausgeführt) werden können. Dieses Konzept wird zum Beispiel auch von der Programmiersprache Java eingesetzt. Nachdem das Compilieren erfolgreich war können Sie ihr Programm starten oder eine R-App anlegen. R-Apps sind eigenständige Programme, die aus dem compiliereten Code und einem "Launcher" bestehen. Der Laucher ruft den Executer, um das BASIC Programm auszuführen. Aus der Sicht des Nutzers unterscheiden sich R-Apps nicht von "normalen" Programmen, die mit dem PC/GEOS SDK geschrieben wurden.

Wie bekomme ich Hilfe?

Überblick über die R-BASIC Konzepte

 


Anmerkung zur aktuellen Version:
Alle implementierten Funktionen wurden sorgfältig geprüft und ausführlich getestet. Sollten Sie trotzdem irgendwelche Probleme haben (seltsames Verhalten, Abstürze, kryptische Fehlermeldungen), so lassen Sie es mich bitte wissen. Helfen Sie mit, das Programm besser und stabiler zu machen.

Aktuelle Änderungen und Neuerungen auf dieser Seite Neuerungen Dezember 2021: Hier finden Sie eine Liste von Downloads auf dieser Seite, die mit der aktuellen R-BASIC Version hinzugefügt oder geändert wurden. Sie sollten Sie herunterladen, um auf dem neuesten Stand zu sein.

Versions-History R-BASIC 1.0
  • Mai 2023: R-BASIC 1.0.3
  • November 2022: R-BASIC 1.0.2
  • Februar 2022: R-BASIC HotFix (Release 1.0.1-1)
  • Dezember 2021: R-BASIC 1.0
Wichtige Downloads auf dieser Seite
  • R-BASIC - aktuelle Version
    Das sind die grundlegenden Komponenten, um mit R-BASIC programmieren zu können.

  • Icon-Editor
    Mit dem Tool "Icon Edit 3.1" können Sie Icons für Ihre R-BASIC Programme erstellen.

  • R-BASIC Translator
    Um Ihre Programme in eine andere Sprache zu übersetzen sollten Sie dieses Tool verwenden.

  • Zusätzliche Libraries
    Diese mit dem SDK geschriebenen Libraries erweitern R-BASIC um Funktionen, die in der eigentlichen Programmiersprache nicht vorgesehen sind.

  • Mouse Pointer Creator
    Wenn Sie möchten, dass der Mauszeiger über einem View anders aussieht, als normal, dann können Sie dieses Tool verwenden.

Wenn Sie sich mit R-BASIC beschäftigen, sollten Sie die hier aufgeführten Komponenten auf jeden Fall herunterladen.

 

Download R-BASIC
Version 1.0.3
Mai 2023

    
 •  R-BASIC IDE (1,5 MB)

    
 •  Beispiele (883 kB)
    Ungeändert seit V.1.0.2

    
 •  Dokumentation (2,6 MB)

    
 •  Images (17 kB)
    Version 09/2018  
Zusätzlich empfohlen  
Vielleicht erforderlich:
 

 


Objekte


Beschreibung aller verfügbaren Objektklassen

Screenshots: Weitere Infos:
Die aktuelle Version von R-BASIC. Für eine vollständige Installation müssen Sie die folgenden Komponenenten herunterladen:

  1. IDE, Dokumentation, Beispiele, Images
    Diese ZIP-Archive müssen Sie alle herunterladen wenn Sie die neueste Version von R-BASIC installieren wollen. Sie enthaltendie folgenden Installations-Pakete:
    • IDE
      Das Paket enthält die R-BASIC Entwickungsumgebung (Editor, Compiler, Erstellen von R-Apps), die Hifedateien, einige Tools sowie weitere, für die Arbeit mit R-BASIC unverzichtbare Dateien.
      Mitgelieferte Tools, zugreifbar aus R-BASIC heraus über das Menü "Extras"-"Tools".

      Wizzard Editor

      Block Graphic Editor

      Font Explorer

      Basic Salvager
        Screenshots ansehen

      Weitere Tools herunterladen

    • Beispiele
      Hier finden Sie eine große Anzahl an Beispielen sowohl zu den BASIC Befehlen, zu den BASIC Objekten als auch zu speziellen Themen wie der Arbeit mit Dateien oder der Block Grafik. Klicken Sie hier für eine Liste aller Beispiele.
    • Dokumentation
      Das Paket enthält die kompletten R-BASIC Handbücher sowie weitere Dokumente. Redaktionelle Änderungen bleiben vorbehalten.
      • Benutzerhandbuch: Beschreibung der IDE und aller wichtigen Dinge, die nicht direkt mit der Programmierspache selbst zu tun haben.
      • Programmierhandbuch: Beschreibung der R-BASIC Programiersprache.
      • Objekthandbuch: Komplette Beschreibung der BASIC Objekte, ihrer Eigenschaften und Fähigkeiten.
      • Spezielle Themen: Weiterführende Themen wie Schriften, Blockgrafik, Dateisystem usw.
      • R-BASIC Anhänge: Übersichten, Tabellen, Fehlercodes und vieles mehr
      • R-BASIC Erweiterungen: Features, die nach der initialen Release 1.0 hinzugefügt wurden
      • Quickreferenz Objekte: Liste alle Objektklassen, ihrer Instancevariablen, Methoden und der dazugehörigen Konstanten
      • Objekt- und Kommando-Übersicht (siehe auch hier)
    • Images
      R-BASIC liefert einige Bilder für die Toolbars, das Document-Interface und mehr mit. Dieses Paket wurde im September 2018 veröffentlicht.

  2. Empfohlene Pakete
    Dies sind einige wichtige zusäliche Dateien, die zum Programmieren mit R-BASIC oftmals gebraucht werden. Die zusätzlichen Libraries müssen Sie nur herunterladen wenn es eine neue Version dieser Libraries oder eine neue Library gibt. Sie ergänzen R-BASIC und werden in speziellen Situationen benötigt. Aktuell sind folgende Libraries verfügbar:
    • DocumentTools - Aktuelle Version 1.1 - Februar 2020
    • VMFiles - Aktuelle Version 1.01 - Veröffentlicht Juli 2015
    • GeoRun - Aktuelle Version 1.0 - Veröffentlicht August 2021
    • ResourceFile - Aktuelle Version 1.0 - Veröffentlicht Januar 2022
    Programmierer, die über das PC/GEOS-SDK verfügen, finden hier das SDK-Library-Kit. Damit kann man R-BASIC um Funktionen erweitern, die im ursprünglichen Konzept von R-BASIC nicht vorgesehen sind.

  3. Vielleicht erforderlich
    Falls Sie ein älteres GEOS System (vor Version 4.1) haben, benötigen Sie vielleicht neuere Sound Libraries (sound.geo und wav.geo) damit die R-BASIC Sound Befehle besser arbeiten. Die Sound Befehle arbeiten natürlich auch mit den älteren Libraries, aber die neueren sind besser. Unglücklicher Weise sind beide Libraries in Benutztung, so dass der Uni-Installer sie nicht automatisch ersetzen kann.
    Bitte prüfen Sie die Versionsnummern der beiden Libraries in ihren System-Ordner und ersetzen Sie sie von Hand, wenn die Libraries in ihrem System eine Versionsnummer kleiner als 4.1 haben. Das Archiv enthält beide Libraries in der Version 4.1. Vergessen Sie nicht, vorher eine Sicherheitskopie der beiden Systemlibraries anzulegen.

Wesentliche Neuerungen seit R-BASIC-Release 1.0

  • Version 1.0.3 - Mai 2023
    • Schweren Bug gefixt: Funktionsaufruf im Return-Statement konnte fehlschlagen
    • Verbessertes Handling im Suchen-Dialog
  • Version 1.0.2 - November 2022
    • RadioButtonGroup-Objekt: Tab-Styled Items ergänzt
    • Verbesserung der Arbeit mit macOS und Linux-Dateien: Zeilentrenner ist ein einzelnes LF
      Das betrifft Text-Objekte und Datei-Befehle
    • Verbesserung des Editor-Handlings bei “ Suchen und Ersetzen“
    • Suche im Text von Textobjekten
    • Diverse Bugfixes und Korrekturen
  • Version 1.0.1 - Februar 2022
    • wichtige Bugfixes und Korrekturen

Neue Beispiele (klicken Sie hier für eine Liste aller Beispiele):
  • Version 1.0.3: keine
  • Version 1.0.2
    • Objekte\Listen\Tabs Tester
    • Objekte\Text\Such-Demo
  • Version 1.0.1: keine

Neue Kapitel im Handbuch:
  • Version 1.0.3: R-BASIC Erweiterungen: Kapitel Versionverlauf hinzugefügt
  • Version 1.0.2
    • Neues Handbuch: R-BASIC Erweiterungen:
      1 Tab-styled RadioButtonGroups
      2 Erweiterte Konvertierungsfunktionen für macOS und Linux
      3 Suchen in Text-Objekten
  • Version 1.0.1: keine
Mehr Details zur aktuellen Version ...
Zur Installation wird eine aktuelle Version des Universal-Installers benötigt. Diese kann hier heruntergeladen werden.

 

   Download Libraries

Diese Libraries werden für spezielle Aufgaben von R-BASIC benötigt.

 

 
ResourceFile Libray
Version 1.0
(51 kB)

Januar 2022
Mit der ResourceFile-Library haben Sie Zugriff auf Grafiken und Texte, die nicht in Ihrem Programm selbst, sondern in einer Resource-Datei gespeichert sind.
Um eine Resource-Datei anzulegen können Sie das Programm "Data ResourceMaker" (Download hier) verwenden.
GeoRun Libray
Version 1.0
(58 kB)

August 2021
Mit der GeoRun-Library können Sie von R-BASIC aus andere GEOS-Programme kontaktieren. Sie können Sie starten, ihnen Dateien übergeben und sie schließen. Außerdem können Sie eine Verbindung zwischen zwei R-BASIC Programmen herstellen, so dass diese miteinander kommunizieren können. Ein Beispiel zur Kommunikation zweier R-BASIC Programme ist beigefügt.
DocumentTools Libray
Version 1.1
(68 kB)

Februar 2020
Die DocumentTools Library stellt eine Reihe von Funktionen bereit, die Sie bei der Arbeit mit Dokumenten unterstützen. Dazu gehörenn zum Beispiel die typischen Dialogboxen zum Öffnen oder Speichern einer Datei. Die Routinen der DocumentTools Library arbeiten eng mit einem DocumentGuardian-Objekt zusammen. Mithilfe der von der DocumentTools Library bereitgestellten Routinen ist es sehr einfach, ein Dokument-Interface mit den üblichen Funktionen zu programmieren. Wie man das macht ist ausführlich im Handbuch "Spezielle Themen", Volume 3, Kapitel 15, beschrieben.
Der gesamte Document-Interface Code kann über ein R-BASIC Menu ("Extras" -> "Code Bausteine" -> "Dokument-Interface") in ihr Programm eingebaut werden. In diesem Fall müssen Sie die DocumentTools Library herunterladen, da sie vom eingebundenen Code verwendet wird.
VMFiles Libray
Version 1.0.1
(106 kB)

Juli 2015
Die VMFiles-Library erlaubt R-BASIC den Zugriff auf die GEOS-typischen VM-Dateien. Die Dokumente aller "großen" Applikationen wie GeoWrite und GeoDraw sind VM-Dateien.
VM-Dateien sind universell einsetzbar und sehr einfach zu handhaben. Wenn Sie z.B. eine Film-Datenbank programmieren wollen, sollten Sie VM-Dateien einsetzen. Die brauchen nicht vorher festzulegen, wie viele Filme Sie in die Datenbank aufnehmen wollen, da Sie mit einem einzigen Befehl einen Datensatz (Film) hinzufügen oder löschen können. Falls Sie ein Bild, z.B. ein Cover, mit in die Datenbank aufnehmen wollen ist auch das mit wenigen Befehlen erledigt, da VM-Dateien extra dafür ausgelegt sind auch Bilder zu speichern.
Die VMFiles Library ist erforderlich wenn Sie mit VM-Dateien arbeiten wollen.

SDK Library Kit (28 kB)

Version 1.0.1
August 2017
Dieses Paket enthält alle notwendigen Dateien und Informationen um mit dem PC/GEOS SDK Libraries für R-BASIC zu schreiben. Damit ist es möglich, R-BASIC um Funktionen zu erweitern, die im ursprüglichen Konzept nicht vorgesehen sind. Beispiele für Libraries, die mit diesem Kit geschrieben sind, sind die VMFiles Library und die DokumentTools Library.
Das Kit ist komplett in Englisch. Es enthält eine ausführliche Anleitung und Beispiele, wie man typische Situationen zu behandlen hat.
Version 1.0.1 fügt einige Handle- und "Register" Typen zur sdklib.goh datei hinzu. Sie brauchen nur von Version 1.0 zu 1.0.1 updaten, wenn Sie in ihrer Library mit R-BASIC Sounds hantieren wollen.

 

   Tutorials, Zusätzliche Informationen und Dateien

Zwei Folder-Icons (3 kB)

Dezember 2021
Die TokenLoader-Datei enthält zwei Icons zur Verwendung mit Ihren R-BASIC Ordnern.

 

Programmiertechniken
Tutorial (51 kB)

Version 1, Oktober 2021
Von der Idee zum fertigen Programm

Dieses Tutorial richtet sich an Programmierer, die noch nicht über größere Programmiererfahrungen verfügen, jedoch mit den Grundlagen der R-BASIC Programmierung vertraut sind. Anhand eines einfachen Spielprogramms werden grundlegenden Programmiertechniken vermittelt. Es wird demonstriert, wie man eine für den Menschen einleuchtende Strategie so formuliert, dass der Computer sie versteht. Dabei wird gezeigt, wie man seine Idee Schritt für Schritt in ein Programm umsetzen kann und es dabei stetig verbessert.
Das Archiv enthält das Tutorial (GeoWrite) und die R-BASIC-Datei mit dem Code.
Sortieren von Listen
Tutorial (193 kB)

Version 1, November 2019
Dieses anfängertaugliche Tutorial beschreibt ein Sortierverfahren (genannt Selection Sort), mit dem man Daten "der Größe nach" sortieren kann. Selection Sort bietet einen guten Kompromiss zwischen Performance und Verständlichkeit des Codes.
Der Code ist ausfühlich kommentiert und so geschrieben, dass er mit wenig Aufwand an eigene Probleme angepasst werden kann. Insbesondere ist erklärt, wie man das Sortierkriterium anpassen kann (d.h.: welchens von 2 Elementen das "größere" ist) und wie man selbst definierte Datentypen (Strukturen) sortieren kann.
Erzeugen eines 16-Farb-Icons aus einer JPG-Datei
Tutorial (18 kB)

Version 1, November 2019
Dieses kurze Tutorial beschreibt, wie man ein relativ hochwertiges 16-Farb-Icon erstellt, wenn man ein JPG-Bild als Vorlage hat.
Download
Mouse Pointer Creator.

Screenshot

Sourcecode

Mit diesem Programm kann man Mauspointer für R-BASIC (Befehl ViewObj.ReadPointerImage) erstellen. Um über das R-BASIC Tools-Menü direkt auf dieses Programm zuzugreifen müssen Sie eine Kopie des Programms im Ordner USERDATA\R-BASIC\Tools ablegen.
Zusätzlich kann der Mauspointer als GOC-Code gespeichert werden.

Dieses Programm ist in R-BASIC geschrieben. Es ist ohne R-BASIC Installation lauffähig.
More Tool Images (85 kB)
Version 2

März 2019
Dieses Paket enthält eine große Anzahl an Bildern die von den GEOS Tool-Buttons stammen und unter R-BASIC verwendet werden können um diese Buttons nachzubilden. Es gibt Bilder für Bitmap-Tools, Farben, Objekt-Tools (wie Rechteck und Linie zeichnen) Text-Tools (z.B. fetter Text, kursiver Text) und viele weitere Bilder. Zusätzlich gibt es den kompletten Satz Spielkarten einschließlich Rückseiten.
Die Dateien werden in USERDATA\R-BASIC\IMAGES installiert und können sofort mit der Anweisung CaptionImage, der Picture-List und anderen verwandten Kommandos verwendet werden.
Version 2 enthält zusätzliche Bilder für Tool-Buttons.
Achtung! Aus Kompatibilitäsgründen sind die Pfade auf Englisch.
R-BASIC Translator

Version 1.1
August 2015

Screenshot

Übersetzer-Tool zum Übersetzen von R-BASIC Programmen und Libraries. Der Link führt auf die Downloadseite mit ausführlichen Informationen zu diesem Programm.
Erstellen von Icons

IconMake 1.1 (31 kB)
(DOS-Programm)

Icon Edit 3.1 (31,4 kB)

Token PCX Tool (8,9 kB)

März 2013
ICONMAKE ist ein DOS-Programm vom Marcus Groeber, das PCX oder ICO Dateien einliest und daraus "Token-Dummys" erstellt. Das sind Mini-"Programme", deren einzige Aufgabe darin besteht, Icons in die Token-Database zu schreiben.

Der Icon Editor ist eine GEOS Anwendung, mit der man Icons für GEOS erstellen oder ändern kann. Es ist quasi ein Mini-Malprogramm mit der Fähigkeit die Bilder als Icons in die Token-Database zu exportieren oder von dort zu importieren. Außerdem wird die Erstellung von Icon-Quellcode für SDK Programme und einiges mehr unterstützt.
Die aktuelle Version 3.1 kann zwar 256-Farb-Icons erstellen, der Export in die und der Import von der Token-Database ist jedoch noch fehlerhaft. Das Erstellen des SDK-Quellcodes ist bereits gefixt.

Token PCX Tool ist ein sehr spartanisches Tool aus dem SDK, dass 8-Bit PCX Dateien lesen und daraus 256-Farb-Icons in der Token-Database erstellen kann. Die Grafiken für das 48x30 und das 15x15 Icon-Bild werden von bestimmeten Positionen des PCX-Bildes gelesen. Details sind in der readme.txt beschrieben. Eine Beispieldatei ist beigefügt.
Weitere Tools (14,2 kB)

Okt. 2010
Weitere Tools für R-BASIC. Zugreifbar aus R-BASIC heraus über das Menü "Extras"-"Tools".
- BuilderBase (Verwaltung von Code-Schnipseln, BreadBox, deutsch)
- HDBConv (Hex-Dec-Bin-Converter, John Howard, englisch)

Beispiele

Nibbles Source (354 kB)

Version 1.0
Dezember 2021

Screenshot (Programm)
Source Code und Iconeditor-Datei des Spiels "Nibbles". Nibbles ist ein Snake-Clone für ein oder zwei Spieler. Das Archiv enthält sowohl den originalen Q-Basic-Code als auch den portierten, lauffähigen R-BASIC Code.
Das Programm ist ursprünlich für Q-BASIC im Textmodus geschrieben. Die Grafikausgabe erfolgt daher über Blockgrafik-Zeichen, wobei jedes Text-Zeichen zwei Grafikpunkte (oben und unten) repräsentiert. Das erschwert das Verständnis der Grafikausgabe etwas, ansonsten ist der Code eher leicht verständlich.
Unter anderem wird die Verwendung des DELAY-Befehls demonstriert und wie man einen Zwei-Spieler-Modus implementieren kann.

Der Code ist nur soweit ins Deutsche übersetzt, wie dies zum Spielen des Games erforderlich ist, insbesondere die Kommentare sind weitgehend nicht übersetzt.

Level:
Spielcode an sich: Einsteiger mit Erfahrung
Grafikausgabe: Fortgeschrittene

Das compilierte Programm (R-App) kann man hier downloaden.
Brick Puzzle Source (250 kB)

Version 2.0
März 2019

Screenshot (Programm)
Source Code und Iconeditor-Datei des Spiels "Brick Puzzle".
Der Code zeigt unter anderem die Verwendung der Maus, insbesondere das Verschieben (Dragging) von Objekten (Umrissen) über den Bildschirm, wie man Text ohne flackern auf eine Grafik schreibt und das Abspielen von Hintergrundmusik. Der Spielstand wird automatisch in einer Datei gespeichert und beim Neustart wieder von dort geladen. Besonderer Wert wurde auf die Dokumentation und Struturierung des Codes gelegt, so dass nicht nur Fortgeschrittene von ihm profitieren können.

Level: Einsteiger mit Erfahrung

Das compilierte Programm (R-App) kann man hier downloaden.
Käferfang Source (101 kB)

Version 2.0
März 2019

Screenshot (Programm)
Source Code und Iconeditor-Datei des Spiels "Käferfang".
Im Original ist das Spiel ein KC-85 Programm. Im Archiv gibt es neben dem originalen, unportierten Code zwei Versionen des R-BASIC Programms. Die erste Version zeigt, wie man ein klassiches BASIC Programm (egal von welchem System) nach R-BASIC portieren kann. In der zweiten Version wurden die klassischen BASIC Relikte wie Zeilennummern und GOSUB Befehle entfernt und durch Subroutinen und Funktionen ersetzt. Dieser Code ist wesentlich übersichtlicher.

Level: Einsteiger mit Erfahrung

Das compilierte Programm (R-App) kann man hier downloaden.
Orbit Source (104 kB)

Version 2.0
März 2019

Screenshot (Programm)
Source Code und Iconeditor-Datei des Spiels "Orbit".
Im Original ist das Spiel ein KC-85 Programm. Der Code zeigt, wie man ein klassiches BASIC Programm (egal von welchem System) nach R-BASIC portieren kann. Mit im Archiv ist der originale, unportierte Code.

Level: Einsteiger mit Erfahrung

Das compilierte Programm (R-App) kann man hier downloaden.
Mouse Pointer Creator Source (81 kB)

Version 1.0
November 2018

Screenshot (Programm)

Source Code und Iconeditor-Datei des Tools "Mouse Pointer Creator". Dieses Beispiel zeigt wie man mit der Maus eine Grafik bearbeiten kann. Außerdem wird eine eigener Mauszeiger verwendet. Die Mauszeigerbilder können in eigenen Dateien gespeichert werden.

Das Programm besteht aus zwei Teilen: dem eigentlich Programm, mit dem man Mauszeiger-Bilder erstellen und den Code schreiben kann sowie dem Code für das R-BASIC Document-Interface. Der Code ist so strukturiert, das man den ersten Teil verstehen und nachnutzen kann, ohne sich mit dem Code für das Document-Interface zu beschäftigen.

Level:
Teil 1: Bearbeiten und exportieren von Mauszeiger-Bildern: Fortgeschrittene
Teil 2: Document-Interface: Experten

Das compilierte Programm (R-App) kann man hier downloaden.
Wurfparabel Source (52 kB)

Version 1.1
September 2016
Source Code und Iconeditor-Datei des Wurfparabel Lehrprogramms. Dieses Beispiel zeigt vornehmlich die Verwendung des Grafik-Mixmodus MM_XOR. In diesem Modus wird eine Linie oder Fläche (zum Beispiel die Wurfparabel) beim ersten Zeichen dargestellt und beim zweiten Zeichnen wieder gelöscht. So kann man z.B. veränderliche Linien ohne Beeinflussung des Hintergrunds programmieren. Der Sourcecode ist so strukturiert, dass man die GEOS typischen Konzepte auch dann verstehen kann, wenn man die Physik hinter dem Programm (Berechung der Wurfparabel) nicht durchschauen will.
Level: Fortgeschrittene
Das compilierte Programm (R-App) kann man hier downloaden.
FileLister Source (31 kB)

Version 1.0
August 2014
Source Code und Iconeditor-Datei der FileLister Anwendung. Dieses Beispiel zeigt, wie man einen Verzeichnisbaum durchsucht, indem eine Routine sich selbst aufruft (rekursive Programmierung), wie man Text in eine Datei schreibt und wie man eine HTML-Datei anlegen kann.
Level: Fortgeschrittene
Das compilierte Programm (R-App) kann man hier downloaden.
2048 Game Sourcecode (82,7 kB)

Version 1.0
August 2014
Quellcode des 2048 Kult-Spiels. Demonstriert grundlegenden Arbeitstechniken wie das Arbeiten mit Strukturen, OnStartup- und OnExit-Handlern sowie das Speichern von Daten in Dateien.
Benötigt R-BASIC 0.8.9a (Hamburg-2014-Version) oder höher.
Das compilierte Programm (R-App) kann man hier downloaden.
Level: Fortgeschrittene
Cool Code (14,9 kB)
März 2013
Ein einfaches Beispiel, dass unter Verwendung der Block-Grafik ein zufälliges Labyrinth zeichnet.
Benötigt R-BASIC 0.8.7 oder höher, da sonst die Zeichengeneratordatei (ALIEN.RBF) die verwendeten Zeichen noch nicht enthält.
Level: Anfänger
Rätsel by Jörg Polzfuß (30,3 kB)
März 2012
Ein kleines Zahlenrätsel, geschrieben von Jörg Polzfuß auf dem Treffen in Syhra 2011. Dieses sehr einfache Beispiel eignet sich sehr gut als Ausganspunkt für eigene Experimente mit der UI und dem Geometrie-Manager.
Level: Anfänger
Release Saver Example (59,6 kB)
März 2012
Dieses komplexe Beispiel zeigt die Verwendung vieler Dateibefehle, einschließlich der Suche nach Dateien und der Fehlerbehandlung in verschieden Situationen. Kernpunkt ist das Kopieren von Dateien und ganzer Ordner, einschließlich Unterordner. Ich verwende dieses Programm zum Sichern meines R-BASIC Code Trees.
Level: Profi

 

Verfügbare Objektklassen

Application


Das Application-Objekt ist unsichtbar.

Dieses Objekt stellt die Verbindung zum GEOS-System her und ist das top Parent-Objekt für alle anderen generischen BASIC-Objekte ihres Programms. Jedes BASIC-Programm muss genau ein Application-Objekt haben. Direktes Child des Application-Objekts ist im allgemeinen ein Primary-Objekt.
Primary

Objekte der Klasse Primary sind die "Hauptfenster" des Programms. Primaries haben links oben ein System-Menü, rechts oben die Schalter für "Minimieren" und "Maximieren" sowie bei Bedarf einen "Hilfe" Schalter (Fragezeichen). Im Allgemeinen hat jedes BASIC Programm genau ein Primary-Objekt.
Button

  

Ein Button ist eine Schaltfläche, die mit der Maus angeklickt oder mit der Tastatur aktiviert werden kann. Buttons werden für Menü-Einträge oder als alleinstehende Schalter verwendet.
Group

Groups (Gruppen) haben einen Hauptzweck: Sie dienen dazu andere Objekte anzuordnen. Durch die geschickte Verwendung von Groups geben Sie als Programmierer ihrem Programm das Aussehen, das Sie wünschen. Die im Bild gezeigte Anwendung besteht aus einer Group (rot, oben) und einer Reply-Bar (unten, ebenfalls ein Group-Objekt), die vertikal (untereinander) angeordnet sind. Die rot markierte Gruppe besteht aus einem Text-Objekt und einer weiteren Group, hier blau markiert. Beide Objekte sind horizontal angeordnet. Die rechte (blaue) Group enthält letztlich die Action-Buttons, die untereinander angeordnet sind.
Menu

Menüs sind der übliche Weg, auf dem der Nutzer unterschiedliche Programmfunktionen anwählen kann. Die Menü-Einträge sind die Children eines Menüs. In vielen Fällen sind dies Buttons. Verschachtelte Menüs (Sub-Menüs, siehe Bild) erhalten Sie, wenn sie andere Menüs als Menü-Einträge verwenden. Verwenden Sie Dialoge als Menü-Einträge, so erzeugt das System selbständig einen Button im Menü, der den Dialog öffnet.
Dialog

Dialoge sind unabhängige Fenster, mit denen der Nutzer interagieren kann. Sie werden für die unterschiedlichsten Aufgaben eingesetzt. Die vom Dialog dargestellten UI-Objekte sind die Children des Dialog-Objekts. Dialog-Objekte sind einfach zu benutzen, verfügen aber auch über sehr viele Fähigkeiten, die sie sehr leistungsfähig machen.
Number

Objekte der Klasse Number (engl.: Zahl) dienen dazu, Zahlen darzustellen oder einzugeben. Obwohl sie sehr einfach zu verwenden sind, verfügen Sie über einen hohen Grad an "Eigenintelligenz". Zum Beispiel kann man die Anzahl der Nachkommastellen einstellen sowie Minimal- und Maximal-Werte festlegen. Je nach Konfiguration können Sie mit normalen Ziffern oder Schieberegler ("Slider") auftreten.

     
OptionGroup mit 3 Option-Objekten

Die OptionGroup verwaltet eine Liste von Option-Objekten, das jedes für sich und abhängig voneinander den Zustand "ein" oder "aus" haben kann.
RadioButtonGroup mit 3 RadioButton-Objketen

Die RadioButtonGroup verwaltet eine Liste von RadioButton-Objekten, die einzeln oder in Gruppen ausgewählt (selektiert) werden können. Die RadioButtonGroup ist ein sehr vielseitiges Objekt das insbesondere dann zum Einsatz kommt, wenn die Anzahl der Listeneinträge von vorneherein bekannt und unveränderlich ist.
DynamicList

Die DynamicList stammt von der RadioButtonGroup ab und ist daher genauso vielseitig wie diese. Sie wird eingesetzt, wenn die Anzahl der Listeneinträge nicht von vorneherein bekannt ist und / oder sich während des Programmablaufs verändert.
View
mit einem
BitmapContent

Die View Objektklasse stellt ein "Fenster" bereit, in dem beliebige grafische Daten - einschließlich Texte - dargestellt werden können. Die Inhalte dieses Fensters, d.h. die grafischen Daten, werden vom "Content"-Objekt (content: engl. Inhalt) bereitgestellt. Dieses Objekt muss nur die Daten darstellen können. Alles andere, wie Scrolling, Zoom oder Clipping (engl. to clip: beschneiden) macht das View.
Objekte der Klasse BitmapContent werden als "content" Objekt an ein View gebunden. Sie verwalten eine editierbare Bitmap. In die Bitmaps der Klasse BitmapContent kann Text oder Grafik geschrieben werden. Das BitmapContent-Objekt legt die zugehörige Bitmap automatisch selbst an, so dass sie sofort benutzt werden kann.

Objekte können auf Maus- und Tastaurereignisse reagieren, indem der Programmierer entsprechnde Handler schreibt. Außerdem können sie mit der Zwischenablage arbeiten.
VisContent
mit mehreren VisObj-Objekten

Objekte der Klasse VisContent dienen dazu, Grafiken in einem skalierbaren und scrollbaren View auszugeben. Sie können außerdem auf Tastatur- und Mauseingaben reagieren.

VisContent-Objekt stellt entweder selbst die Grafik bereit, oder es verwendet Children (der Klasse VisObj), die ihrerseits Grafik ausgeben und auf Tastatur und Maus reagieren können.
Die Anordung der VisObj-Objekte kann komfortabel automatisch oder mit voller Kontrolle manuell erfolgen.

Bild wird gezeigt, dass das VisContent eine Hintergrundgrafik ausgibt, auf die dann die VisObj-Objekte gezeichnet werden.
Objekte der Klasse VisObj stellen als Children eines VisContent eine beliebige Grafik dar. Sie können selbst mit der Maus und der Tastatur interagieren. Außerdem können sie selbst wieder Children (weitere VisObj-Objekte) haben.
R-BASIC unterstützt das Positionieren der VisObj-Objekte mit der Maus (Dragging) sehr komfortabel.
GenContent

Objekte der Klasse GenContent dienen dazu, Generic Class Objekte (z.B. Buttons) in einem scrollbaren View darzustellen. Die Applikation "Voreinstellungen" macht von dieser Möglichkeit Gebrauch.

GenContent-Objekte können jede Art von Generic Class Objekten als Children haben. Im Bild auf der linken Seite sind das drei Buttons, eine RadioButtonGroup und ein Canvas Objekt.

ViewControl

Ein ViewControl Objekt stellt die UI für das "Ansicht" Menü bereit. Im Wesentlichen kann der Nutzer damit den Zoomfaktor und einige andere Eigenschaften des kontrollierten Views einstellen.
Wenn ein View für die Interaktion mit einem ViewControl-Objket konfiguriert ist findet die Zusammenarbeit zwischen View und ViewControl automatisch, ohne weiteres Zutun des Programmierers, statt.
Canvas

Objekte der Klasse Canvas stellen eine Grafik dar, indem sie ihren OnDraw Handler aufrufen. Zusätzlich verfügen sie über einen gepufferten Modus, der sehr schnell arbeitet. Canvas Objekte können auf Mausereignisse reagieren, indem der Programmierer entsprechnde Handler schreibt. Außerdem können sie mit der Zwischenablage arbeiten.
Image

Ein Imageobjekt dient dazu, eine Grafik anzuzeigen, die als fertiges Bild in einer Datei oder in der PictureList vorliegt. Der Programmierer muss nichts weiter tun als die anzuzeigende Grafik zu spezifizieren.Das Imageobjekt kann auch Animationen ohne weiteres Zutun des Programmierers abspielen.

Unterstützte Grafik-Formate:
  • Grafik-Dateien: JPG, BMP, ICO, PCX, GIF, TGA, RLE, DIB, SCR (BreadBox SplashScreen)
  • VM-Dateien: GEOS Hintergrund Dateien, Resource-Maker Dateien (Bitmaps und GStrings)
  • Animationen: GIF, FLC, FLI, BreadBox QuickCam Format
Memo

InputLine

VisText

LargeText

Die R-BASIC Textobjekte erlauben das einfache Eingeben von Text, ohne dass Sie als Programmierer sich um irgendwelche Details kümmern müssen. Die Textobjekte behandeln Tastatur- und Mausereignisse selbständig und erzeugen bei Bedarf eine vertikale Scroll-Leiste. Sie registrieren, ob der Text vom Nutzer verändert wurde und können bei Bedarf Messages aussenden, um den Rest des Programms über bestimmten Ereignissen zu informieren.
Alle Textobjekte können mit der Zwischenablage (Clipboard) kommunizieren.

In R-BASIC stehen vier Textobjekt Klassen zur Verfügung.
  • Die Klasse Memo stellt einen einfachen Texteditor bereit. Sie unterstützt einen automatischen Zeilenumbruch und die Entertaste beginnt einen neuen Absatz.
  • Die Klasse InputLine ist für die Eingabe einzeiliger Texte, z.B. von Dateinamen, gedacht.
  • Objekte der Klasse VisText müssen wie ein VisObj-Objekt in einem visual Tree verwendet werden.
  • Der Vorteil der LargeText Objekte ist, dass sie beliebig viel Text speichern können (theoretisch bis zu 2 GByte), während die anderen Textobjekte auf auf 4 kByte begrenzt sind.
FileSelector

Ein FileSelector stellt die UI bereit, die notwendig ist, um eine Datei oder ein Verzeichnis auszuwählen. Klickt der Nutzer auf einen Eintrag sendet der FileSelector eine Notification-Message aus und der Programmierer kann entscheiden was passiert. Häufig wird die entsprechende Datei dann geöffnet. Die Navigation durch die Verzeichnisse handelt der FileSelector dabei selbständig.

Dateien in der Liste angezeigt werden kann über diverse Kriterien, z.B. das Token der Datei oder eine Dateimaske eingestellt werden.
ColorSelector

Ein ColorSelector stellt die UI bereit, die notwendig ist, um eine Farbe, ein Füllmuster oder ein Füllraster auszuwählen.

der Eigenschaften (Farbe, Füllmuster, Raster) dem Nutzer zur Auswahl angeboten werden kann eingestellt werden. Per default sind es nur die Indexfarben, wie im linken Bild dargestellt.

Display und DisplayGroup

Objekte der Klasse Display sind die "Fenster" in denen alle großen Applikationen ihre Daten anzeigen. Displays müssen Children eines DisplayGroup Objekts sein. Die Displays selbst enthalten weitere UI-Objekte, die die eigentlichen Informationen darstellen. Im Bild links ist das ein Memo-Objekt.

Eine DisplayGroup stellt den Bereich bereit, in dem die Displayobjekte dargestellt werden. Im Bild sind drei Displays in einer DisplayGroup zu sehen.
DisplayControl

Das DisplayControl stellt die UI bereit, mit der der Nutzer die Displays in der DisplayGroup anordnen kann. Außerdem enthält es eine Liste der Displays in der DisplayGroup. Wie im Bild zu sehen ist das DisplayControl üblicher Weise ein Child des "Fenster" Menüs.
DocumentGuardian


Das DocumentGuardian-Objekt ist unsichtbar.
Viele Programme arbeiten mit Dokumenten, die der Nutzer anlegen, bearbeiten, speichern und weitergeben kann. Objekte der Klasse DocumentGuardian erleichtern Ihnen den Umgang mit solchen Dokumenten, indem Sie allgemeine Informationen, die bei der Arbeit mit Dokumenten anfallen, verwalten. Dazu zählen z.B. der Name und der Pfad zur Dokumentendatei, der Dateityp, das Token sowie das FileHandle der offenen Datei.

sind dafür ausgelegt mit der Library "DocumentTools" zusammenzuarbeiten. Diese Library bietet z.B. die zur Dateiarbeit nötigen Dialogboxen wie "Öffnen" und "Speichern unter" an.

DocumentGuardian Objekte können auch mit der "VMFiles" Library zusammenarbeiten. Diese Library erlaubt den Zugriff auf die leistungsfähigen "Virtual Memory" (VM)-Dateien, die von allen großen GEOS Anwendungen als Dokumente genutzt werden.
PrintControl


Das PrintControl-Objekt selbst ist unsichtbar. Es stellt aber den Drucken-Dialog bereit.

der "Drucken"-Dialog

Wenn Sie aus einem R-BASIC-Programm heraus drucken wollen müssen Sie ein PrintControl-Objekt benutzen. Das PrintControl-Objekt stellt der "Drucken"-Dialog bereit und steuert alle für das Drucken notwendigen Vorgänge.
PageSizeControl

Wenn der Nutzer die Möglichkeit haben soll, die Seitengröße eines Dokuments einzustellen, sollten Sie ein PageSizeControl Objekt verwenden, dass die zur Einstellung der Seitengröße, des Papierformats und der Ränder notwendige UI bereitstellt.

 

Neues in der aktuellen Version

  • Version 1.0.3 - Mai 2023
    • Falsche Fehlermeldungen gefixt
    • Schweren Bug gefixt: Funktionsaufrufe im Return-Statement konnten fehlschlagen
    • Verbessertes Handling im Suchen-Dialog
    • Compilerwarnung für NOT, gefolgt von einer offenen Klammer
    • Mehr als 32000+ (2^15) Zeilen in einem Code-Window zugelassen
  • Version 1.0.2 - November 2022
    • RadioButtonGroup-Objekt: Tab-Styled Items ergänzt
      RadioButtonGroup Looks: LOOK_TABS_TOP, _BOTTOM, _RIGHT, _LEFT
      RaisedFrame für Groups
    • “Suchen und Ersetzen“ Dialog konnte bei Nachfrage “Dieses Vorkommen ersetzten?“ den Codetext überdecken. Wird “ausgeblendet“.
    • Strg-F, Strg-R, Strg-D: automatische übernahme des Wortes am Cursor abschaltbar (getrennt voneinander)
    • Unterstützung macOS und Linux: Zeilentrenner ist einzelnes LF
      Betrifft Convert$, textObj.InsertFromFile, textObj.ReplaceFromFile, textObj.WriteToFile (neues FLag CR_TO_LF)
      sowie FileWriteLine, FileInsertLine und FileReplaceLine (neue WirteLine-Modi: WLM_APPEND_LF, WLM_CR_TO_LF, WLM_SET_TO_LF)
    • Bugfix: Launcher (R-App) registriert sich nach Neustart wieder für Clipboard-Überwachung
    • Suche in Textobjekten: FindString, FindStringBackward, CountString, ReplaceString (Alles ersetzen), bei Bedarf "nur ganze Wörter"
    • Wizzard Editor: Helpfile verständlicher formuliert und fehlendes Feature dokumentiert.
    • Librarys: exportierte Identifier werden nicht mehr bei “unbenutzen globalen Bezeichnern“ gelistet.
    • Diverse keinere Korrekturen, Rechtscheibfehler usw.
  • Version 1.0.1 - Februar 2022
    • Bugfix beim Setzen der Tausender-Punkte
    • Bug TxtObj.WriteToVMFie / WriteToFile bei leeren Texten beseitigt
    • Paragraph-Attribut von Memo/Inputline funktionierten nicht
    • Große Projektnotizen waren nicht scrollbar (Fenster größer als Bildschirm)
    • Diverse weitere interne Verbesserungen und Korrekturen
  • Version 1.0 - Dezember 2021
    • Objektorientiere Programmiersprache mit leicht erlenbarer BASIC-Syntax
    • Integrierte Entwicklungsumgebung (IDE): Editor - Compiler - Debugger
    • Erzeugen von R-Apps, die ohne IDE laufen und sich wie SDK-Programme verhalten

 


 

R-BASIC im Überblick

Klicken Sie auf die Bilder für eine Großdarstellung. Diese Übersichten stammt aus dem R-BASIC\Dokumente Ordner (GeoDraw-Dokumente).

Überblick R-BASIC Kommandos

Überblick R-BASIC Objekte


 

  Zurück zum Anfang
r*bettsteller#web*de ---- If you are not a robot replace * by . (dot) and # by @
Wenn Sie kein Roboter sind ersetzen Sie * durch . (Punkt) und # durch @ (Klammeraffe)
Datenschutzerklärung | Haftungsausschluss | Impressum | Privacy Policy (English) | Disclaimer (English)