www.wikidata.de-de.nina.az
Phoenix Object Basic ehemals Envelop ist eine integrierte Entwicklungsumgebung die im Jahr 1995 vom US amerikanischen Unternehmen Cimlinc entwickelt wurde 2 3 Nach dem Ende der Entwicklung durch Cimlinc wurde das Projekt vom niederlandischen Unternehmen Janus Software ubernommen und in Phoenix Object Basic umbenannt Dort wurde die Entwicklungsumgebung fur das Betriebssystem Linux portiert Phoenix Object BasicEnvelop EntwicklungsumgebungBasisdatenEntwickler Cimlinc Inc Janus SoftwareErscheinungsjahr 1995 1 Aktuelle Version Windows 1 4Linux 1 5 Beta 6Betriebssystem Windows und LinuxProgrammiersprache C Kategorie Integrierte Entwicklungsumgebung IDE Lizenz proprietardeutschsprachig neinwww envelop com offline www janus software comDie Entwicklungsumgebung ermoglicht Rapid Application Development RAD in einer eigenen objektorientierten Programmiersprache die sich sehr stark an Visual Basic 3 orientiert Die Gestaltung der grafischen Benutzeroberflache von Envelop sowie die dort bereitgestellten Werkzeuge sind ebenfalls an Visual Basic angelehnt Die letzte Version 1 4 fur Windows erschien im Jahr 1996 2 Die letzte Version 1 5 beta 6 fur Linux erschien im Jahr 2004 Die Website von Envelop existiert nicht mehr und die Software wird nicht mehr angeboten Inhaltsverzeichnis 1 Eigenschaften der Programmiersprache 1 1 Klassen und Objekte 1 2 Datentypen und Variablen 1 3 Subroutinen und Funktionen 1 4 Fehlerbehandlung 1 5 Formularentwurf 1 5 1 Basissteuerelemente 1 5 2 Erweiterte Steuerelemente 1 5 3 Benutzerdefinierte Steuerelemente 1 6 Datenbindung 1 7 Bibliotheken 2 Modifikation der Entwicklungsumgebung 3 Distribution von Envelop Programmen 4 Verbreitung 5 Alternativen 5 1 Alternativen fur altere Betriebssysteme 5 1 1 Microsoft Visual Basic 5 1 2 Gambas 5 1 3 REALbasic 5 2 Alternativen fur moderne Betriebssysteme 6 Weblinks 7 EinzelnachweiseEigenschaften der Programmiersprache BearbeitenPhoenix Object Basic ist eine imperative objektorientierte Programmiersprache 4 5 Klassen und Objekte Bearbeiten Phoenix Object Basic ist eine objektorientierte Programmiersprache Im Gegensatz zu den meisten objektorientierten Programmiersprachen findet allerdings keine explizite Aufteilung in Klassen und Objekte statt Allgemein stellen Objekte eine Instanz einer Klasse dar Eine Klasse ist eine Menge aller Objekte mit gleichen Attributen und Operationen 6 In Phoenix Object Basic konnen bestehende Objekte kopiert und abstrahiert werden Die Abstraktion eines Objekts bildet das Prinzip der Vererbung nach Mehrfachvererbung ist mit Envelop nicht moglich Zudem existieren in Envelop auch keine Sichtbarkeiten fur Attribute und Methoden Objekte konnen entweder zur Entwurfszeit uber die Entwicklungsumgebung abstrahiert werden 7 8 oder dynamisch wahrend der Laufzeit Das globale Objekt span class n ObjectTools span stellt eine Reihe von Methoden zur Verfugung mit der Objekte dynamisch abstrahiert verwaltet und untersucht werden konnen 9 Es handelt sich dabei um grundlegende Funktionen von Reflexion Uber das globale Objekt span class n SystemTools span kann zur Laufzeit mit dem Betriebssystem interagiert werden 10 Datentypen und Variablen Bearbeiten Phoenix Object Basic stellt folgende Datentypen bereit Typ Symbol Grosse BeschreibungInteger 2 Byte Vorzeichenbehaftete Ganzzahl 11 Long amp 4 Byte Vorzeichenbehaftete Ganzzahl 12 Single 4 Byte Gleitkommazahl mit 1 Bit Vorzeichen 8 Bit Exponent und 23 Bit Mantisse 13 Double 8 Byte Gleitkommazahl mit 1 Bit Vorzeichen 11 Bit Exponent und 52 Bit Mantisse 14 Currency 8 Byte Festkommazahl mit 15 Stellen vor und 4 Stellen nach dem Komma 15 String 1 Byte pro Zeichen ANSI Zeichenfolge 16 Einschrankungen der Datentypen Es existieren fur Ganzzahlen weder 1 Byte noch 8 Byte 64 Bit grosse Datentypen Zudem sind numerische Datentypen in Envelop stets mit einem Vorzeichen behaftet Ahnlich wie in Visual Basic werden boolesche Ausdrucke als vorzeichenbehaftete 2 Byte Ganzzahl gespeichert bei dem der Wert 1 span class k True span und der Wert 0 span class k False span entspricht 17 Im Gegensatz zu Visual Basic wird allerdings auf einen eigenen Datentyp span class kt Boolean span verzichtet sondern auf den Datentyp span class kt Integer span zuruckgegriffen 11 Es existiert im Gegensatz zu Visual Basic kein Datentyp fur Datums und Zeitangaben Meistens werden diese Angaben als Zeichenfolge zuruckgegeben wobei es Unterschiede im Format gibt An manchen Stellen werden numerische Angaben zur Reprasentation verwendet Subroutinen und Funktionen Bearbeiten In Phoenix Object Basic wird wie in den meisten Dialekten der Programmiersprache BASIC zwischen Funktionen Function und Subroutinen Sub unterschieden Funktionen sind Methoden welche einen Wert zuruckgeben wahrend Subroutinen keinen Wert zuruckgeben konnen Parameter konnen als Wert oder als Referenz ubergeben werden Soll ein Parameter als Wert ubergeben werden muss das Schlusselwort span class k ByVal span vor dessen Deklaration geschrieben werden Fehlt dieses Schlusselwort so wird der Parameter implizit als Referenz ubergeben 18 Anders als in Visual Basic gibt es hier kein explizites Schlusselwort span class k ByRef span In Phoenix Object Basic konnen auch Methoden aus externen Dynamic Link Libraries DLL aufgerufen werden 5 19 Die Syntax zur Deklaration externer Methoden ist dabei ahnlich zu der von Visual Basic 20 Obwohl die Entwicklung von Envelop 1996 also zu Zeiten von Windows 95 eingestellt wurde konnen auf diese Art und Weise auch Funktionen aus neueren Windows Versionen verwendet werden Da Envelop nur 32 Bit Anwendungen erzeugen kann 21 konnen jedoch nur externe Funktionen aus 32 Bit DLLs genutzt werden 22 Plattformabhangige Funktionen konnen allerdings nicht aus anderen Betriebssystemen heraus aufgerufen werden Declare Function FileEncryptionStatus Lib Advapi32 Alias FileEncryptionStatusA ByVal lpFileName As String lpStatus As Long As Integer Das Beispiel zeigt die Deklaration der externen Funktion span class n FileEncryptionStatus span mit der man ab Windows 2000 ermitteln kann ob eine angegebene Datei verschlusselt ist oder nicht 23 Diese Funktion steht erst seit Windows 2000 zur Verfugung Der Dateiname wird uber den Parameter span class n lpFileName span als Wert ubergeben Der Status wird als Referenz uber den Parameter span class n lpStatus span zuruckgegeben Die Funktion selbst gibt einen booleschen Wert zuruck der angibt ob der Funktionsaufruf selbst erfolgreich war oder nicht Da es in Envelop keinen booleschen Datentyp gibt siehe oben wird der Ruckgabewert ersatzweise als 2 Byte Integer deklariert Fehlerbehandlung Bearbeiten Im Gegensatz zu den meisten BASIC Programmiersprachen der damaligen Zeit werden in Envelop keine numerischen Fehlercodes und Sprunganweisungen Goto zur Verarbeitung von Fehlern verwendet sondern das Prinzip der strukturierten Ausnahmebehandlung Try Catch Prinzip 24 Sub btnDiv Click Dim m as New MessageBox m SetIconStop Try txtResult Text txtNum1 Text txtNum2 Text Catch ConvertFailed m Message Fehler Bitte geben Sie zwei Zahlen ein Catch FPException m Message Fehler Division durch 0 ist nicht erlaubt Catch m Message Fehler Es ist ein unbekannter Fehler aufgetreten End Try End Sub Das Beispiel zeigt einen Ausschnitt aus einem simplen Taschenrechner Wenn der Benutzer die Schaltflache Dividieren span class n btnDiv span anklickt wird versucht den Wert des ersten Eingabefelds span class n txtNum1 span durch den Wert des zweiten Eingabefelds span class n txtNum2 span zu teilen und das Ergebnis in das Textfeld span class n txtResult span zu schreiben Sollte dies nicht gelingen wird eine Ausnahme ausgelost Im Fehlerfall werden zuerst Konvertierungsfehler span class n ConvertFailed span abgefangen danach numerische Fehler span class n FPException span und abschliessend alle anderen Fehler z B bei zu wenig Speicherplatz In jedem Fall wird dem Benutzer eine entsprechende Fehlermeldung in einem Dialogfenster angezeigt Formularentwurf Bearbeiten Phoenix Object Basic stellt einen grafischen Editor zur Erstellung von grafischen Benutzeroberflachen bereit 4 21 Dieser ist nahezu identisch zum Formulareditor von Visual Basic Diese Formularentwurfe werden in einer Objekt Datei ebo gespeichert Fur alle Elemente zur Gestaltung von grafischen Benutzeroberflachen die uber ein sogenanntes Handle verfugen existiert das Basisobjekt span class n Window span Davon leiten sich Formulare span class n Form span und Steuerelemente span class n Control span ab 25 Basissteuerelemente Bearbeiten Die nachfolgenden Steuerelemente existieren sowohl fur die Zielplattform Windows als auch fur Derivate des Betriebssystems Linux Typ BeschreibungButton Eine einfache Schaltflache 26 Label Ein einfaches Beschriftungsfeld 27 TextBox Ein oder mehrzeiliges Eingabefeld fur unformatierte Zeichenfolgen 28 CheckBox Ein Auswahlkastchen Innerhalb eines Containers konnen mehrere Auswahlkastchen ausgewahlt sein 29 OptionButton Ein Optionsfeld Innerhalb eines Containers kann immer nur ein Optionsfeld ausgewahlt sein 30 ListBox Ein einfaches Listenfeld mit textbasierten Eintragen 31 ComboBox Ein Kombinationsfeld mit textbasierten Eintragen 32 Frame Ein Rahmen der eine Gruppe von zusammengehorigen Steuerelementen umgibt 33 Image Eine Zeichenflache 34 DataControl Eine Gruppe von Navigationsschaltflachen fur Datensatze 35 HyperControl Ein benutzerdefiniertes Steuerelement siehe unten 36 Daruber hinaus kann fur jedes Formular eine Menuleiste mit Hilfe eines visuellen Editors angelegt und bearbeitet werden Erweiterte Steuerelemente Bearbeiten Neben den plattformunabhangigen Standardelementen stehen unter Microsoft Windows noch einige zusatzliche Komponenten bereit Typ BeschreibungObjectBox Abhangig von der ausgewahlten Darstellungsform eine Symbolleiste oder eine Werkzeug Palette 37 RichTextBox Mehrzeiliges Eingabefeld mit RTF Formatierung 38 ListView Erweitertes Listenfeld mit Symbolen und ggf mehreren Spalten 39 TreeView Darstellung einer hierarchischen Baum Struktur 40 TabStrip Registerkarten zur kategorischen Zusammenfassung von Steuerelementen 41 Gauge Horizontaler oder vertikaler Fortschrittsbalken 42 Daruber hinaus konnen unter Microsoft Windows auch noch 32 Bit ActiveX Komponenten von Microsoft oder Drittanbietern eingebunden werden 43 Ebenso besteht dort die Moglichkeit OLE Objekte einzubinden 44 Dabei handelt es sich beispielsweise um Verbunddokumente aus der Microsoft Office Familie Word Dokumente PowerPoint Folien Excel Tabellen und Diagramme digitale Medien CAD Zeichnungen oder beliebige andere Dateien Unter Linux wird dieses Konzept nicht unterstutzt Benutzerdefinierte Steuerelemente Bearbeiten Im Gegensatz zu Visual Basic gab es in der finalen Version von Envelop bereits im Jahr 1996 die Moglichkeit benutzerdefinierte Steuerelemente zu erstellen Diese werden in Envelop als Hyper Control bezeichnet 45 Ein benutzerdefiniertes Steuerelement ist eine Gruppierung mehrerer primitiver Steuerelemente zu einem neuen komplexen Steuerelement 21 Diese kann man innerhalb eines Projekts oder auch in mehreren Projekten an mehreren Stellen wiederverwenden Derartige Steuerelemente konnen auch eigene Eigenschaften Methoden z B Konsistenzprufungen und Ereignisse besitzen und an Datenquellen gebunden werden Beispiele dafur sind unter anderem Eingabemasken fur Postadressen Produktdaten oder Daten in digitalen Patientenakten Dieses Konzept hat sich in vielen Programmiersprachen durchgesetzt und findet auch heute noch Verwendung Zur damaligen Zeit war die Bereitstellung derartiger Moglichkeiten zumindest fur BASIC Programmiersprachen nicht selbstverstandlich und daher ein deutlicher Mehrwert dieser Programmiersprache Datenbindung Bearbeiten Ahnlich wie in Visual Basic und den meisten modernen RAD Entwicklungsumgebungen konnen Steuerelemente an eine Datenquelle gebunden werden 4 5 Dadurch konnen klassische formularbasierte Anwendungen zur Datenerfassung und verarbeitung einfach und schnell entwickelt werden Komplexe Eingabemasken konnen mit sogenannten Hyper Controls realisiert werden Bibliotheken Bearbeiten Formularentwurfe Steuerelemente und Code Dateien werden in Objektdateien ebo gespeichert Diese sind intern nach dem Compound File Binary Format CFBF Format aufgebaut und konnen in beliebig vielen Projekten wiederverwendet werden Allerdings lassen sich daraus keine DLL oder OCX Dateien generieren Modifikation der Entwicklungsumgebung BearbeitenEine Besonderheit von Envelop ist die Tatsache dass die Entwicklungsumgebung teilweise selbst in Envelop Basic programmiert ist und durch Entwickler angepasst und erweitert werden kann 5 Auf diese Art und Weise kann man beispielsweise die Benutzeroberflache in eine andere Sprache ubersetzen Makros entwickeln Automatisierung oder eigene Assistenten programmieren Die Weiterentwicklung der Programmiersprache selbst bzw des Compilers Bootstrapping ist allerdings nicht moglich Der Quellcode fur die zentralen Elemente der Sprachverarbeitung ist nicht offentlich verfugbar da hier urheberrechtlich geschutzte Elemente eingesetzt werden Distribution von Envelop Programmen BearbeitenEnvelop generiert ausschliesslich 32 Bit Anwendungen fur Windows Bei den kompilierten Apps handelt es sich jedoch nicht um Stand Alone Anwendungen Bei der Verteilung der Apps mussen einige Laufzeitkomponenten mit ausgeliefert werden Um dies zu erleichtern wird neben der IDE auch ein rudimentares Programm zur Erstellung von Installationsprogrammen fur Envelop Anwendungen mitgeliefert Envelop und die damit erstellten Programme sind grundsatzlich auch noch unter der 32 Bit Version von Windows 10 lauffahig wenn NTVDM installiert wurde Unter der 64 Bit Version von Windows steht dieser Dienst nicht bereit weshalb Envelop Programme dort generell nicht ausgefuhrt werden konnen Die Entwicklungsumgebung und die damit erstellten Programme durfen allerdings keine visuellen Stile nutzen da sie sonst nicht lauffahig sind und absturzen Visuelle Stile werden entweder uber eine Manifest Datei oder eine Manifest Ressource aktiviert Andere Funktionen die durch Manifest Dateien aktiviert werden konnen werden durchaus unterstutzt Dazu zahlen unter anderem 46 Zugriff auf Funktionen die Administratorrechte erfordern Skalierung der Benutzeroberflache auf hochauflosenden Bildschirmen Unterstutzung von langen Dateipfaden Nutzung der Druckertreiberisolation Bei Linux Betriebssystemen mussen einige alte Pakete installiert werden um Envelop und die damit erstellten Programme lauffahig zu machen Verbreitung BearbeitenSeit die Entwicklung im Jahr 2004 eingestellt wurde hat die Entwicklungsumgebung bzw Programmiersprache keine nennenswerte Verbreitung gefunden Alternativen BearbeitenDie Entwicklung von Envelop fur Windows wurde bereits 1996 eingestellt Die letzte Version fur Linux erschien im Oktober 2004 Seitdem haben sich einige BASIC Entwicklungsumgebungen und Frameworks entwickelt die den Anforderungen von modernen Endgeraten und Betriebssystemen besser gerecht werden Als Envelop auf den Markt kam gab es nur wenige BASIC Entwicklungsumgebungen mit einem komfortablen WYSIWYG Editor fur die Gestaltung grafischer Benutzeroberflachen Microsoft Visual Basic war damals der bekannteste Vertreter dieser Gruppe Im Gegensatz zu den anderen BASIC Entwicklungsumgebungen war Envelop stets kostenlos Alternativen fur altere Betriebssysteme Bearbeiten Microsoft Visual Basic Bearbeiten Phoenix Object Basic bildet die Entwicklungsumgebung Visual Basic 3 und 4 nahezu vollstandig nach Allerdings ist Visual Basic nicht fur unter Linux nutzbar Diese Lucke wird durch das Linux Pendant Phoenix Object Basic abgedeckt Gambas Bearbeiten Seit 1999 existiert mit der Entwicklungsumgebung Gambas eine exklusive Alternative fur Varianten des Betriebssystems Linux Uber das Windows Subsystem fur Linux ist es allerdings auch moglich Gambas unter dem Betriebssystem Windows auszufuhren Diese Programmiersprache wird immer noch gepflegt und aktiv weiterentwickelt Die aktuelle Version 3 16 3 erschien am 15 September 2021 47 REALbasic Bearbeiten Eine weitere kostenpflichtige Entwicklungsumgebung aus der damaligen Zeit stellt REALbasic dar Diese Software wird bis heute unter dem Namen XOJO gepflegt und weiterentwickelt Alternativen fur moderne Betriebssysteme Bearbeiten Fur sehr alte Betriebssysteme z B Windows 95 kommen die nachfolgenden Alternativen nicht in Frage da diese nur unter relativ modernen Betriebssystemen lauffahig sind Folgende Entwicklungsumgebungen erlauben die Entwicklung von plattformubergreifenden Apps fur Windows Linux und macOS wobei die ersten beiden auch noch die mobilen Plattformen Android und iOS abdecken B4X Xamarin KBasic bzw Basic For QtWeblinks BearbeitenEnglischsprachiger Wikipedia Artikel zu Phoenix Object Basic Homepage Memento vom 4 November 1996 im Internet Archive Janus Software Phoenix 1 4 for Windows a k a Envelop Memento vom 13 August 2007 im Internet Archive EXE 7 4 MB Janus Software Phoenix 1 5 for Linux Beta 6 Memento vom 13 August 2007 im Internet Archive RPM 4 0 MB Janus Software Phoenix 1 5 for Linux Beta 6 Documentation Memento vom 13 August 2007 im Internet Archive RPM 1 7 MB Einzelnachweise Bearbeiten Envelop Engine Press Release Memento vom 4 November 1996 im Internet Archive a b CIMLINC Inc Hrsg The Envelop Story 1 4 Auflage Itasca Illinois USA 9 Juli 1996 Installationsordner gt STORY TXT englisch Trademarks August 27 1996 In Official Gazette of the United States Patent and Trademark Office 1189 Jahrgang Nr 4 27 August 1996 ISSN 0360 5132 S 148 englisch archive org a b c Envelop Engine Fact Sheet Memento vom 4 November 1996 im Internet Archive a b c d Phoenix Object Basic Key Features Abgerufen am 15 November 2021 englisch Christian Herzog Grundlagen der Programmierung Kapitel 3 Klassen und Objekte PDF Technische Universitat Munchen 14 Oktober 2009 S 7 abgerufen am 7 Dezember 2021 englisch Phoenix Object Basic Abstracting an object Abgerufen am 15 November 2021 englisch Phoenix Object Basic Abstracting controls Abgerufen am 15 November 2021 englisch Phoenix Object Basic ObjectTools Abgerufen am 15 November 2021 englisch Phoenix Object Basic SystemTools Abgerufen am 15 November 2021 englisch a b Phoenix Object Basic Integer Data Type Abgerufen am 15 November 2021 englisch Phoenix Object Basic Long Data Type Abgerufen am 15 November 2021 englisch Phoenix Object Basic Single Data Type Abgerufen am 15 November 2021 englisch Phoenix Object Basic Double Data Type Abgerufen am 15 November 2021 englisch Phoenix Object Basic Currency Data Type Abgerufen am 15 November 2021 englisch Phoenix Object Basic String Data Type Abgerufen am 15 November 2021 englisch Boolean Datentyp In Microsoft Hrsg MSDN Library Visual Studio 6 0 1998 Visual Basic Dokumentation VBENLR98 CHM Phoenix Object Basic Function Statement Abgerufen am 15 November 2021 englisch Phoenix Object Basic Declare Statement Abgerufen am 15 November 2021 englisch Declare Anweisung In Microsoft Hrsg MSDN Library Visual Studio 6 0 1998 Visual Basic Dokumentation VBENLR98 CHM a b c Envelop Engine The Free Object Oriented Familiar RAD tool for MS Windows 95 and NT Memento vom 4 November 1996 im Internet Archive Microsoft Docs Process Interoperability Abgerufen am 15 November 2021 englisch Microsoft Docs FileEncryptionStatusA function winbase h Abgerufen am 28 November 2021 englisch Phoenix Object Basic Try Catch Loop Abgerufen am 15 November 2021 englisch Phoenix Object Basic Window Abgerufen am 16 Januar 2022 englisch Phoenix Object Basic Button Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic Label Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic TextBox Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic CheckBox Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic OptionButton Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic ListBox Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic ComboBox Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic Frame Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic Image Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic DataControl Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic HyperControl Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic ObjectBox Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic RichTextBox Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic ListView Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic TreeView Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic TabStrip Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic Gauge Abgerufen am 8 Januar 2022 englisch Phoenix Object Basic Ocx Abgerufen am 18 Dezember 2021 englisch Phoenix Object Basic Ole Abgerufen am 18 Dezember 2021 englisch Phoenix Object Basic HyperControl Abgerufen am 18 Dezember 2021 englisch Application Manifests Abgerufen am 10 Dezember 2021 englisch Gambas Almost Means BASIC Abgerufen am 24 Dezember 2021 englisch Abgerufen von https de wikipedia org w index php title Phoenix Object Basic amp oldid 230450274