WxBasic
wxBasic ist eine Open source-Implementation von Davic Cuny eines BASIC-Interpreters. Die damit erzeugten Programme laufen unter Windows und Linux. Der Interpreter ist im Betastadium. Man kann damit einzelne ausführbare Dateien erzeugen, die keine andern Dateien zur Ausführung benötigen ausser einer Laufzeitumgebung von wxBasic.
wxBasic ist in C geschrieben mit einer C++-Schicht um die langjährig bewährte wxWidgets-GUI-Bibliothek hinzuzubinden.
wxBasic benutzt einen Bytecode, wie Perl, Java oder VB.net.
Ausführliches Beispiel
Anstelle detaillierter Angaben zu Syntax und GUI-Befehlsaufrufen mag ein ausführliches Beispiel illustrieren, wie lesbar der Code ist, der in wxBasic geschrieben worden ist. Es handelt sich um eine kleine Applikation, die dem Benutzer anbietet, über das Datei-Menu eine Datei zu öffnen. Der Text dieser Datei wird dann in einem Fenster dargestellt. Gezeigt wird also, wie ein Menu aufgebaut wird und wie die Menuanwahl mit Subroutinen verknüpft wird. Die Menuanwahl wird in der Statuszeile jeweils mit einem Hilfetext erläutert. Das Programm ist komplett und damit funktionsfähig.
' übernommen von http://wxbasic.sourceforge.net/phpBB2/viewtopic.php?t=554 ' Simple Text Viewer in wxBasic dim AppName = "Text Viewer" fileName = ""
' Hauptfenster; ein Frame ist ein Fenster. dim frame = new wxFrame( Nothing, -1, AppName & " - Ohne Titel" ) ' Text edit control dim control = new wxTextCtrl( frame, -1, "", wxPoint( 0, 0 ), wxSize( 100, 100 ), wxTE_MULTILINE | wxTE_READONLY | wxTE_RICH)
' Status bar - The one at the bottom of the window dim status = frame.CreateStatusBar( 1 ) frame.SetStatusText("Bereit")
' Dialog used for Open dim fileDialog = new wxFileDialog( frame )
' Menuleiste zum Frame (=Fenster) hinzufügen dim mBar = new wxMenuBar() frame.SetMenuBar(mBar)
' 'Datei'-Menu erzeugen dim mFile = new wxMenu() mBar.Append(mFile, "&Datei") ' Eintrag hinzufügen mFile.Append( wxID_OPEN, "&Oeffnen...", "Eine bestehende Datei laden..." )
mFile.AppendSeparator() mFile.Append( wxID_EXIT, "B&eenden\tAlt-X", "Anwendung beenden" )
Sub onFileOpen( event ) fileDialog.SetMessage("Datei öffnen") fileDialog.SetStyle( wxOPEN ) If fileDialog.ShowModal() = wxID_OK Then fileName = fileDialog.GetPath() Ext = fileDialog.GetFilename() control.Clear() control.LoadFile( fileName ) frame.SetTitle( AppName & " - " & fileName ) frame.SetStatusText(Ext) End If End Sub
Connect( frame, wxID_OPEN, wxEVT_COMMAND_MENU_SELECTED, "onFileOpen" )
Sub onFileExit( event ) frame.Close(True) End Sub
Connect( frame, wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED, "onFileExit" )
' Hilfemenü erzeugen dim mHelp = new wxMenu() mBar.Append(mHelp, "&Hilfe") mHelp.Append( wxID_HELP, "&Über\tF1", "Über dieses Program" )
Sub onHelpAbout( event ) Dim msg = "Text View zeigt eine Text-Datei an \n" & "unabhängig davon welche Dateiendung sie aufweist.\n" & "Falls es sich nicht um eine Textdatei handelt," & "dann wird die Datei nicht angezeigt." wxMessageBox( msg, "Über Text View", wxOK + wxICON_INFORMATION, frame ) End Sub Connect( frame, wxID_HELP, wxEVT_COMMAND_MENU_SELECTED, "onHelpAbout" )
frame.Show(True) ==External links==