BeSly - BeOS, Haiku & Zeta
knowledge base (Haiku only)

Sprache auswählen

  • Русский (Россия)
  • Português do Brasil (pt-BR)
  • Polski (PL)
  • Italiano (IT)
  • Deutsch (Deutschland)
  • Français (France)
  • Nederlands (nl-NL)
  • English (United Kingdom)
  • Login
  • Start
  • Artikel
    • Haiku
      • Eine Alternative für den Desktop
      • Poesie und ein freies Betriebssystem
      • Test: Haiku r1 Alpha 4
    • BeGeistert
      • BeGeistert 006 - "Ghost in the Machine"
      • BeGeistert 016
      • BeGeistert 018 Phoenix
      • BeGeistert 019 - Alphaville
      • BeGeistert 020
    • BeSly, BeOS und Zeta Wissensbasis wird 1 Jahr alt!
    • Versionen
  • Büroprogramme
    • GoBe Productive
      • Seitenansicht auf Querformat umstellen
      • Bild fließend in einen Text einbinden
      • GobeProductive 2.0 für Haiku
      • Zeilenumbruch in einer Tabelle vornehmen
    • Joeffice - Open Source Office Suite
  • Bug-Report
    • Haiku - System- oder Programmfehler melden
    • Syslog - Fehlerinformationen nach Absturz des Systems sichern
  • CD/DVD Programme
    • MKBFS
      • BFS Imagedatei über den Terminal erstellen
    • mkhybrid
      • ISO Imagedatei erstellen über den Terminal
  • Datensicherung
    • Datensicherung mit LBackup
    • Backup von kompletten System
  • Div. Programme
    • BeSly-Tutorial Finder
      • Anleitung
    • Drop2Number
      • Drop2Number+kopieren - Mehrfach Umbenennen
    • Drop2Sort
      • Drop2Sort Beschreibung
  • Emulatoren
    • DosBox
      • DosBox
    • FreeSCI - portierbarer Interpreter für Sierra Spiele
      • FreeSCI - Beschreibung
  • EMail
    • Beam
      • Allgemeines über Beam
      • Das Hauptfenster in Beam
      • Das Einstellungsfenster
      • Der Posteingangsserver
      • Der Postausgangsserver
      • Identitäten
      • Signaturen
      • Beam Filter Einstellen - Mail - SPAM
      • BeMail, Beam... Mailadressen
      • Beam - Tips and Tricks
    • Haiku Mail
      • Mail Einrichten
  • Entwicklung
    • BuildLOG
      • BuildLOG Dokumentation
    • C / C++
      • Wie kann man einen Mauszeiger in C/C++ anpassen?
    • EGSL
      • EGSL IDE - Dokumentation
      • EGSL Befehle
      • Easy Game Scripting mit Lua (EGSL)
      • EGSL Tutorial
      • EGSL - Quellcode von gebundenem Programm einsehen
      • Outrun Deluxe in EGSL
    • Haiku Porter
      • Baue Pakete mit Haikuporter
    • HTML
      • HTML Sonderzeichen
    • Love2D
      • Love2D generiere ausführbare Dateien
    • LUA
      • LUA
    • Playground Editor
      • Playground Editor Beschreibung
    • Programm- Info Libraries
    • Systemverzeichnisse von Haiku ermitteln
    • yab
      • Chaotics Haiku, yab und Scripting Tutorials
      • YAB Programmierhilfen - Strings
      • YAB Programmierhilfen - Allgemein (2)
      • YAB Programmierhilfen - Subroutinen
      • YAB Programmierhilfen - Fenster
      • YAB Programmierhilfen - Dateien
      • YAB Programmierhilfen - Allgemein
      • yab chr$()
      • Verwendung von Objekten in yab
      • So berechnen Sie den Durchschnitt vieler Zahlen mit yab
      • Tutorial zum Hinzufügen neuer Befehle in Yab
      • yab
      • yab - Spiel Tutorial
      • yab - Mischen von Karten
      • yab- Quellcode von gebundenem Programm einsehen
      • Wie sortiert man ein Zahlen Array in Yab
      • yab Programmierrichtlinien
      • YAB GUI Elemente
      • yab Commands
      • yab - Arrays erklärt
      • YAB Namespace Libs
  • Grafikbearbeitung
    • ArtPaint
      • ArtPaint Dokumentation
      • Willkommen bei ArtPaint
      • ArtPaint Kurzeinführung
      • ArtPaint Programminformationen
      • ArtPaint Tastaturkürzel
      • ArtPaint Registration
      • ArtPaint Updates
      • ArtPaint Paint-Window
      • Kurzeinführung
    • Icon-o-Matic
      • Tips and tricks
      • Haiku Icon ändern oder zuweisen
      • Ein einfaches Icon erstellen
    • Wonderbrush
      • Bilder im Pixelbereich bearbeiten
      • Bildgröße ändern
      • Screenshot bearbeiten
      • Bildbereich ausschneiden
  • Hardware
    • Tests
      • Chaotic´s Haiku Hardware Tests
    • BeSly SAT - Hardware List
    • BeSly SAT - Hardware List (Komplette Systeme)
  • Internet
    • Beshare
      • Einstellungen und Bedienung
      • Tips and tricks
    • freelists
      • FreeLists.org - So funktionierts
    • Internetanwendungen und deren Ports
    • Poorman
      • Datenaustausch (Filesharing) mit Poorman
    • Vision einrichten (IRC Client)
    • Voptop
      • Anleitung
  • Installation
    • Haiku installation
    • Neuinstallation - Daten sichern und wieder einfügen
    • Erstelle einen bootfähigen USB-Stick (unter Windows)
    • Bootmanager
    • Haiku, BeOS, Zeta in GRUB2 einfügen
    • Haiku im Windows Bootmenü einfügen
  • Musik
    • Audio Cd abspielen
    • fre:ac
      • Audio CD mit fre:ac in MP3 konvertieren
    • PecoBeat
      • Willkommen bei PecoBeat!
      • Die PecoBeat Programme
    • TopLIsta
      • TopLIsta Dokumentation
  • Package Management System
    • HaikuDepot - Bewertung abgeben
    • HaikuDepot Web - Bewertung abgeben
    • Haiku Package Datei (HPKG) über Terminal erstellen
    • HPKG Creator
    • Repomaker
    • Manuelles Nachinstallieren von System Dateien
  • Spiele
    • Aleph One
    • Alex the Allegator 4 (Alex4)
      • Alex the Allegator 4 (Alex 4) - Der Level-Editor
      • Alex the Allegator 4 (Alex 4) - Alex4Customs
      • Alex the Allegator 4 (Alex4)
    • Bshisen
      • Wie erstelle ich Tilesets für BShisen
      • Bshisen Beschreibung
    • Click-O-Manie Beschreibung
    • ColorBalls
    • Exult - Ultima 7 for Haiku
    • Fang und Flucht
      • Going Deep
    • Gem Drop X - Beschreibung
    • Haiku, BeOS und Zeta Spiele
    • Hopkins FBI - Beschreibung
    • Jump and Run
    • Keen Döskopp
    • Mahjongg
      • Wie erstelle ich Tilesets für Mahjongg?
    • Wolfenstein 3D
  • System
    • Wie erstelle ich eine Verknüpfung?
    • Systemübersicht
  • Systemstartup
    • Haiku - Bedeutung der Booticons
    • Fail-Safe Video Mode - Nicht unterstützte Grafikkarte nutzen
    • Vermeide immer längere System Startzeiten
    • Starte Programme nach dem Systemstart automatisch
  • Systemprogramme
    • AttrLOption - Kurzanleitung
    • bash_history Switcher - Beschreibung
    • BeSly System Analysis Tool
    • Haiku's Screenshot - Beschreibung
    • HiQ-Dock
      • HiQ-Dock
    • Menu Sorter
      • Anleitung
    • Tar-Gui
      • TAR GUI Beschreibung
    • Zip-Gui
      • ZIP GUI Beschreibung
  • Systemeinstellungen
    • Haiku - Tipps und Tricks
    • Haiku Menü - Schaffe Ordnung im Programmchaos
    • Strukturieren des automatisierten Haiku Menüs
    • Keymap anpassen
    • Rechte Maustaste : Menü - Menüpunkt "Neu" erweitern
  • Terminal / Bash
    • Replikant
      • Ein Replikant in der Deskbar Tray erzeugen
    • Startscript für Programme die nur über Terminal laufen
    • tar - Kurzanleitung
    • Diskette aus Imagedatei erstellen
    • Imagedatei von Diskette erstellen
    • Shell Skripte
    • Erstelle eine People Datei über den Terminal
  • Video
    • BeSly ScreenCapture
      • ScreenCapture Beschreibung
How to help us?

Who wants to help this project, can do this writing their own tutorials, descriptions or translations. Also ideas or criticisms are welcome.

To make your own tutorials you have some helpful informtions and opportunities. The easiest way is, you write your tutorial and send it to: webmaster(at)besly.de. It is important that this is really an own tutorial, as there could be legal problems to the original authors otherwise.

Aktuell sind 938 Gäste und keine Mitglieder online

  1. Aktuelle Seite:  
  2. Startseite
  3. Start

Willkommen

Details
Geschrieben von: admin
Kategorie: Willkommenstexte
Auch verfügbar: Italiano (IT) English (United Kingdom)
Veröffentlicht: 25. September 2022
Erstellt: 25. September 2022
Zuletzt aktualisiert: 21. September 2026
Zugriffe: 7363

Willkommen auf der BeSly, der Haiku Wissensbasis.


Diese Seite wurde erstellt, um anderen Benutzern und Entwicklern zu helfen. Was zu Beginn, im August 2004, mit ausschließlich deutschsprachigen Übersetzungen und kleinen Anleitungen begonnen hat, ist heute eine umfangreiche, informative, mehrsprachige Wissensbasis. Sie enthält diverse Hilfestellungen zur Installation, Programmbeschreibungen, Programmierung und Systemeinstellungen.

Dabei wurde immer viel Wert auf die einfach zu verstehenden Aufbau und Beschreibung der Anleitungen geachtet. Im Laufe der Jahre sind auch viele Ideen der Benutzer mit eingeflossen, wie z.B. die Angabe, für welches System die jeweilige Anleitung gedacht ist.

Die Menüstruktur ist so aufgebaut, dass alle Anleitungen nach deren Programmzugehörigkeit sortiert angezeigt werden. Außerdem kann man die Suchfunktion nutzen um Anleitungen zu finden.

Es gibt auch eine kleine Software (BeSly Tutorial Finder), die das Suchen von BeSly Anleitungen ermöglicht. Hier werden, wie auf der Webseite, alle Programme der Programmzugehörigkeit, aber auch nach Systemart, Sprache oder Autoren angezeigt. Dabei werden auch die kleinsten Anleitungen mit einbezogen, die man sonst nur in "Tipps und Tricks" Auflistungen findet.

Durch die Ähnlichkeit zwischen den Systemen, die alle auf der gleichen Grundlage oder dessen Nachbau sind, sind viele Anleitungen auf mehreren Systemen anwendbar.

Wer diesem Projekt helfen möchte, kann dies gerne in Form von eigenen Anleitungen, Beschreibungen oder Übersetzungen machen. Auch Ideen oder Kritik sind willkommen.

Durch den Relaunch der BeSly ist es jetzt möglich, dass die Nutzer die Anleitungen selbst im Webinterface schreiben. Auch das Hochladen von Bildern ist kein Problem. Einzige Bedingung ist das Anmelden auf der BeSly. Eure Daten werden von uns nicht weitergeben.

 

Die aktuelle BeSly beinhaltet ausschließlich Haiku spezifische Inhalte. Die Inhalte zum Thema Be OS und Zeta befinden sich auf der Vorgänger- Version dieser Seite. Folgen Sie dazu dem Link zur alten BeSly (OLD BeSly) auf der Startseite.

 

Wir unterstützen die Be OS, Zeta, Haiku Community seit August 2004

YAB Namespace / Library

Details
Geschrieben von: admin
Kategorie: yab
Auch verfügbar: English (United Kingdom)
Veröffentlicht: 08. September 2026
Erstellt: 08. September 2026
Zuletzt aktualisiert: 21. September 2026
Zugriffe: 145

1. Übersicht

YAB ermöglicht die Aufteilung eines Programms auf mehrere externe Libraries.

Eine Library kann enthalten:

  • Variablen
  • Stringvariablen
  • Arrays
  • Subroutinen
  • exportierte Subroutinen

Eine Library wird mit import eingebunden. Ihre von außen verfügbaren Bestandteile werden über den Namespace der Library angesprochen.

import test1
n=test1.test1()
Dabei ist test1 der Namespace und test1() die exportierte Subroutine.

2. Libraries und Namespaces

Eine oder mehrere Libraries können importiert werden:

import test1
import test2
import test3

Jede Library besitzt ihren eigenen Namespace. Dadurch können gleichnamige Variablen und Subroutinen verschiedener Libraries eindeutig unterschieden werden.

a=test1.value
b=test2.value
n=test1.test()
m=test2.test()

Der Namespace wird beim Zugriff vor den Namen des gewünschten Bestandteils gesetzt:

namespace.sub()
namespace.sub$()
namespace.variable
namespace.variable$

3. Exportierte Subroutinen und Rückgabewerte

Eine Subroutine, die außerhalb ihrer Library aufgerufen werden soll, wird mit export definiert:

export sub test1()
return 10
end sub

Der Aufruf erfolgt über den Namespace:

n=test1.test1()
Auch Subroutinen mit $ können exportiert werden:
export sub test2$()
   return "Hallo"
end sub
Aufruf:
text$=test2.test2$()
Das $ ist Bestandteil des Namens der Subroutine und muss beim Aufruf entsprechend angegeben werden.

Eine mit $ benannte Subroutine kann dabei auch einen numerischen Wert zurückgeben. Das $ bestimmt also nicht zwingend den Datentyp des return-Wertes.

Rückgabewerte können direkt zugewiesen oder unmittelbar weiterverarbeitet werden:

n=test.get_number()
text$=test.get_text$()
print arraydim(test.get_array())

4. Parameterübergabe

Exportierte Subroutinen können einen oder mehrere Parameter erhalten.

export sub add(zahl)
   return zahl*2
end sub
Aufruf:
n=test.add(10)
Mehrere Parameter:
export sub add(zahl1,zahl2)
  return zahl1+zahl2
end sub
Aufruf:
n=test.add(10,20)
Die Reihenfolge der übergebenen Werte entspricht der Reihenfolge der Parameterdefinition.

Dabei können auch unterschiedliche Werte übergeben werden:

export sub text$(text$,zahl)
  return text$+str$(zahl)
end sub
Aufruf:
text$=test.text$("Wert: ",10)

5. Zugriff auf Variablen

Variablen einer Library können über den Namespace angesprochen werden.

Numerische Variable:

n=test1.b
Stringvariable:
text$=test1.d$
Allgemeine Formen:
namespace.variable
namespace.variable$
Damit kann eine Library neben ihren exportierten Subroutinen auch Daten für andere Programmteile bereitstellen.

6. local-Variablen

Eine mit local deklarierte Variable gehört zur jeweiligen Subroutine.

counter=100 export
sub test()
  local counter
  counter=counter+1
  return counter
end sub
Hier existieren zwei unterschiedliche Variablen:
counter
→Library-Variable

und:

local counter
→lokale Variable der Subroutine.

Der Zugriff:

test.counter
bezieht sich auf die Library-Variable und nicht auf die lokale Variable.

Die lokale Variable wird bei jedem erneuten Aufruf der Subroutine neu initialisiert.

Beispiel:

export sub test()
  local counter
  counter=counter+1
  return counter
end sub
Mehrere Aufrufe liefern:
test() → 1
test() → 1
test() → 1
Eine local-Variable einer anderen Subroutine ist ebenfalls unabhängig, auch wenn sie denselben Namen besitzt.

7. Zugriff einer Library auf andere Libraries

Eine Library kann auf exportierte Subroutinen und Variablen anderer Libraries zugreifen.

Beispiel:

export sub test5()
  a=test1.test1()
  b$=test2.test2$()
  return a
end sub
Ebenso kann auf Variablen zugegriffen werden:
n=test1.b
text$=test2.d$
Dadurch können Libraries untereinander sowohl Funktionen als auch Daten verwenden.

Eine Library kann somit beispielsweise:

a=test1.test1()
b=test1.b
verwenden.

8. Cross-Namespace-Aufrufe

Mehrere Libraries können miteinander kombiniert werden.

Beispielsweise:

main.yab
¦
+-- test1
+-- test2
+-- test5
test5 kann Funktionen und Variablen von test1 und test2 verwenden:
export sub test5()
  a=test1.test1()
  b$=test2.test2$()
  return a
end sub
Damit können größere Programme aus mehreren spezialisierten Libraries aufgebaut werden.

Eine Library kann dabei sowohl auf Subroutinen:

test1.test1()
als auch auf Variablen:
test1.b
anderer Namespaces zugreifen.

9. Arrays

Libraries können Arrays enthalten und Arrays über exportierte Subroutinen zurückgeben.

Beispiel:

dim numbers(3)
numbers(1)=10
numbers(2)=20
numbers(3)=30
Eine exportierte Subroutine kann das Array zurückgeben:
export sub test_numbers()
  return numbers
end sub
Der Rückgabewert kann über den Namespace direkt weiterverarbeitet werden:
print arraydim(test_array.test_numbers())
print arraysize(test_array.test_numbers(),1)
Das gleiche gilt für String-Arrays:
print arraydim(test_array.test_id$())
print arraysize(test_array.test_id$(),2)
Damit können numerische und String-Arrays über Namespace-Subroutinen zurückgegeben und direkt an Array-Funktionen übergeben werden, ohne sie vorher zwingend einer Variablen zuweisen zu müssen.

Beispielsweise:

arraydim(test_array.test_numbers())
führt zunächst die Namespace-Subroutine aus und übergibt deren Array-Rückgabewert anschließend an arraydim().

Ebenso:

arraysize(test_array.test_numbers(),1)
oder:
arraydim(test_array.test_id$())
arraysize(test_array.test_id$(),2)
Damit eignet sich der Namespace auch für den Austausch komplexerer Datenstrukturen zwischen Libraries.

10. Variablen und Subroutinen als gemeinsamer Namespace

Eine Library stellt über ihren Namespace unterschiedliche Bestandteile zur Verfügung.

Beispiel:

test1
¦
+-- test1()
+-- value
+-- text$
+-- Array
Diese können über denselben Namespace angesprochen werden:
n=test1.test1()
n=test1.value
text$=test1.text$
print arraydim(test1.get_array())
Der Namespace dient somit als gemeinsamer Namensraum für die von der Library bereitgestellten Subroutinen und Variablen.

11. Bestätigte Eigenschaften

Die Namespace-Funktionalität wurde anhand einer Testreihe mit insgesamt 16 Tests überprüft.

Dabei wurden folgende Bereiche getestet

  • Import mehrerer Libraries
  • Namespace-Aufrufe
  • exportierte Subroutinen
  • Subroutinen mit und ohne $
  • numerische Rückgabewerte
  • String-Rückgabewerte
  • Parameterübergabe
  • mehrere Parameter
  • unterschiedliche Parameter
  • Zugriff auf Variablen über den Namespace
  • Zugriff einer Library auf andere Libraries
  • Kombination aus Subroutinen und Variablen verschiedener Namespaces
  • Arrays als Rückgabewerte
  • numerische Arrays
  • String-Arrays
  • direkte Übergabe von Array-Rückgabewerten an arraydim()
  • direkte Übergabe von Array-Rückgabewerten an arraysize()
  • Verhalten von local-Variablen
Insbesondere wurde bestätigt, dass ein Array-Rückgabewert direkt weiterverarbeitet werden kann:
arraydim(test_array.test_numbers())
Arraysize(test_array.test_numbers(),1)
arraydim(test_array.test_id$())
arraysize(test_array.test_id$(),2)

12. Kurzreferenz

FunktionSyntax
Library importieren import name
Sub exportieren export sub name()
$-Sub exportieren export sub name$()
Sub aufrufen name.sub()
$-Sub aufrufen name.sub$()
Variable name.variable
Stringvariable name.variable$
Ein Parameter name.sub(wert)
Mehrere Parameter name.sub(wert1,wert2)
Rückgabewert return wert
Array zurückgeben return array
Arraydimension arraydim(name.sub())
Arraygröße arraysize(name.sub(),dimension)
Library-Variable name.variable
Library-Stringvariable name.variable$

13. Merksatz

import bindet eine Library ein, export stellt eine Subroutine nach außen bereit und der Namespace ermöglicht den eindeutigen Zugriff auf die Variablen und Subroutinen der Library.

import meine_lib
n=meine_lib.berechnen(10)
text$=meine_lib.text$("Hallo")
wert=meine_lib.variable
text$=meine_lib.text$
print arraydim(meine_lib.get_array())

Damit können YAB-Programme in mehrere Libraries aufgeteilt und diese Libraries über Namespaces miteinander verbunden werden.

Imprint
Haftung
Die Nutzung von BeSly erfolgt auf eigenes Risiko. Eine Haftung oder Gewährleistung für die Inanspruchnahme unserer Dienste und Inhalte oder deren Verfürgbarkeiteit wird nicht übernommen. Wir übernehmen ferner keine Verantwortung für Inhalte außerhalb von BeSly, auf die wir verweisen.
Die BeSly übernimmt außerdem keine Gewähr für Inhalte in Bereichen, in denen von Besuchern automatische Eintragungen vorgenommen werden können (z.B. Foren). Sollten Sie Inhalte entdecken, die gegen Gesetze verstoßen oder in denen Rechte Dritter verletzt werden, informieren Sie uns bitte sofort per E-Mail an webmaster@besly.de oder webmaster@lelldorin.de, damit wir diese Inhalte bis zur Klärung des Sachverhalts sperren können.

 

Webmaster und Gestaltung:
Name: Lorenz Glaser
Strasse: Stammannstr. 35 
Ort: 22303 Hamburg
EMail: webmaster(at)besly.de
   
Name: Christian Albrecht
Strasse: Stolbergsstrasse
Ort: 22085 Hamburg
EMail: webmaster(at)lelldorin.de