Dieser Einsteigerkurs soll
nur ein paar Grundlagen von NewBasic aufzeigen und verdeutlichen, wie das
Programm zu handhaben ist. Ich selbst bin kein professioneller Programmierer
und kann daher nur mein bescheidenes Wissen wiedergeben. Vielleicht weckt
dieser Beitrag bei manchem das noch schlummernde Programmierertalent.
NewBasic ist eine
Programmieroberfläche für NewDeal Office bzw. Breadbox Ensemble.
Mit NewBasic lassen sich einfache Applikationen für NewDeal bzw. Breadbox
Ensemble relativ schnell gestalten, indem die verschiedenen Bauteile (Components)
einfach durch Anklicken in das Programm eingefügt werden. Fügt
man dann noch ein paar Zeilen Programmcode hinzu, ist die erste Anwendung
schon fertig.
Wird NewBasic gestartet,
sind zunächst drei Fenster auf dem Bildschirm. Ich will jetzt nicht
alle Menüs und Funktionen beschreiben, erstens, weil es sonst zu trocken
und langweilig wird, und zweitens, weil ich selbst nicht alles weiß.
Oben der Hauptteil des Programmes
mit der Titelleiste NewBASIC Builder, mit dem wir unser Werk nicht nur
speichern und für die Nachwelt erhalten können, sondern er ermöglicht
auch einen Probelauf und es lassen sich ausführbare Programme für
NewDeal erstellen.
Links
haben wir die Toolbox. Alle in der Toolbox enthaltenen Bauteile
(Componenten) können einfach in das Programm eingefügt werden.
Dazu wird das entsprechende Teil, zum Beispiel button, angeklickt
und dann einmal in die Oberfläche des künftigen Programmes geklickt. |
Rechts
befindet sich schon die erste Oberfläche eines künftigen Programmes
mit der Titelleiste NewBASIC. Die Bauteile, die NewBasic verwendet, werden
Componenten (Components) genannt, auch diese erste Oberfläche ist
bereits eine Componente (form1). |
Damit es nicht langweilig
wird, steigen wir gleich in die Programmierung ein und basteln unser erstes
Programm.
Dazu werden drei Componenten
benötigt, eine form, ein label und zwei buttons.
Die form1 haben wir bereits nach dem Start von NewBASIC. Nun klicken
wir in der Toolbox einmal auf label und dann irgendwo in
die form1, die NewBASIC als Titelleiste hat. Dann in der Toolbox
einmal auf botton klicken und irgendwo in die form1. Dieser
Schritt wird nochmals wiederholt, so dass wir ein label und zwei buttons
in unserer form1 haben. Das Programm müßte jetzt der rechten
Abbildung entsprechen.
Nun wird es Zeit unser kleines
Werk zu speichern, dazu gehen wir im NewBASIC-Hauptfenster im Menü
auf File - Save As.... Der Dateinamen muß dem
alten DOS-Format 8.3 entsprechen, wobei die Endung immer BAS
sein muß. Wir geben als Dateinamen hier KURS_01.BAS ein.
|

Bild 1
|
In unserem Progrämmchen
haben wir nun vier Componenten, deren Eigenschaften (Properties) wir jetzt
der Reihe nach verändern wollen. Zunächst nehmen wir unseren
Programmhauptteil, die form1 vor. Dazu klicken wir auf eine freie
Stelle der Form, so dass die geamte form1 mit einem roten Rahmen
umgeben ist.
Im Menü des NewBASIC-Hauptfensters
gehen wir dann auf Window - Component Properties.... Ein
neues Fenster mit der Titelleiste Component Properties, was etwa
soviel bedeutet wie "Eigenschaften der Bauteile", öffnet sich. In
der ersten Zeile müßte nun stehen: Properties for: form1
(form). Das bedeutet, dass wir nun die Eigenschaften der form1
ändern können.
Die nächste Zeile enthält
die drei Buttons Genaral (allgemeine Einstellungen/Eigenschaften),
Children
(Einstellungen für die automatische Aufteilung) und
Specific
(spezielle Einstellungen/Eigenschaften). Diese Fenster können je nach
Art der ausgewählen Componente unterschiedliche Inhalte haben.
Als nächstes kommen
die Kontrollkästchen Visible, Enable und Read Only.
Visible bedeutet,
dass die Componente, also hier unsere form1, sichtbar ist. Wenn
wir dieses Kontrollkästchen deaktivieren und auf den Button Apply
(Einstellungen übernehmen) klicken, verschwindet unsere form1. Da
wir unser Programm aber sehen wollen, aktivieren wir wieder das Kontrollkästchen
und klicken erneut auf Apply.
Mit dem Kontrollkästchen
Enable
kann eine Componente aktiviert bzw. deaktiviert werden. Zum
Testen der Wirkungsweise deaktivieren wir das Kontrollkästchen und
klicken auf Apply. Nun wird alles in der form1 in einem blassen
Grau dargestellt und nichts läßt sich mehr anklicken. Auch dieses
Kontrollkästchen wieder aktivieren und erneut mit Apply die Einstellungen
übernehmen.
Das Kontrollkästchen
Read
Only ist hier inaktiv, diese Einstellung ist zum Beispiel bei der Componente
Text
wichtig, hier kann eingestellt werden, ob die Textbox editierbar sein soll
oder nicht.
|

Bild 2
|
In das Feld Name
kann ein Name eingegeben werden, der auch später im Programmcode verwendet
wird. Ich habe es immer bei dem vorgegebenen Namen form1 belassen,
da dieser schon sehr aussagekräftig ist.
Was das Feld Proto
zu bedeuten hat, habe ich bisher noch nicht heraus gefunden, auch hier
habe ich den vorgegebenen Eintrag form1 gelassen.
Das Feld Caption Text
enthält den Namen, der in der Titelleiste angezeigt wird. Hier können
wir nun das vorgegebene NewBASIC entfernen und Kurs Teil 1
eintragen. Die Einstellungen mit Apply übernehmen. In der Titelleiste
unseres Programmes müßte nun der eingegebene Name angezeigt
werden.
Die beiden Pulldown-Menüs
Width
und Height legen die Breite und Höhe, also die Größe
unseres Programmfensters form1 in Pixel fest.
Die Pulldows haben jeweils
vier Menüeinträge:
-
As specified - Die Componente
(hier form1) wird so groß dargestellt, wie es in den Einstellungen
Width
und Height zwei Zeilen darunter festgelegt wird.
-
As small as possible
- Die Componente wird so klein wie möglich dargestellt.
-
As big as possible -
Die Componente wird so groß wie möglich dargestellt.
-
As needed - Die Componente
wird so groß wie im Moment nötig dargestellt.
Bei diesen Einstellungen
sollte man immer berücksichtigen, das andere User andere Auflösungen
und andere Einstellungen z.B. für die Schriftgröße verwenden
können und dann die Darstellung leihenhaft aussehen kann. Wird z.B.
die Breite (Width eines Buttons auf eine bestimmte Größe festgelegt,
dann kann eine größere Systemschrift dazu führen, dass
der Button-Text nicht mehr auf den Button paßt. Die bessere Lösung
wäre hier, die Einstellung für die Breite des Buttons auf As
needed oder As small as possible einzustellen. |

Bild 3
|
Für unsere form1
wählen wir als Breite (Width) und Höhe (Height) jeweils As
small as possible. Nun sind die beiden Einstellboxen Width und
Height
zwei Zeilen darunter inaktiv. Unser Progrämmchen müßte
nun Aussehen, wie in Bild 4 dargestellt.
Die beiden Nummernboxen Left
und Top legen die Position unser Programmfensters beim Programmstart
fest. In unserem Beispiel (Bild 3) erscheint das Programmfenster 150 Pixel
vom linken Bildschirmrand (Left) und 100 Pixel vom oberen Bildschirmrand
(Top) entfernt.
|

Bild 4
|
Nachdem wir nun alle General
(Allgemeine) Einstellungen für unsere form1 gemacht haben,
wechseln wir in die Einstellungen Children.
Erstes Kontrollkästchen
ist Auto Layout. Solange dieses Kontrollkästchen noch nicht
aktiviert ist, sind die anderen Einstellmöglichkeiten in diesem Fenster
inaktiv. Das bedeutet für unsere form1, dass ich die bisher eingefügten
Komponenten (label1, button1 und button2) noch innerhalb der form1 frei
verschieben und positionieren kann. Diese Art der Programmgestaltung hat
den Vorteil dass man das Layout jederzeit durch Verschieben der einzelnen
Componenten verändern kann. Man braucht sich also vorher nicht großartig
Gedanken über das spätere Aussehen zu machen. Der Nachteil liegt
aber darin, dass, wie schon oben im Kursivtext beschrieben, bei einer anderen
Auflösung bzw. größeren Systemschrift nicht mehr alles
so dargestellt wird, wie es sein sollte und das sieht dann sehr unprofessionell
aus.
Da unser Progrämmchen
nicht so leihenhaft aussehen soll, aktivieren wir das Kontrollkästchen
Auto Layout. Im Pulldown-Menü Layout haben wir nun die Möglichkeit,
unsere bereits eingefügten Componenten Vertical oder Horizontal zu
positionieren. Um die Wirkunsweise zu betrachten, wählen wir Horizontal
und übernehmen die Einstellung mit Apply. Nun sind alle Componenten
nebeneinander angeordnet. Hier wollen wir jedoch die Verticale Ausrichtung
beibehalten und wählen wieder Vertical im Pulldown-Menü und übernehmen
die Einstellung mit Apply.
Das Pulldown-Menü Align
Horizontal ist für die horizontale (waagerechten) Ausrichtung
der Componenten zuständig, hier gibt es vier Möglichkeiten der
Einstellung:
-
Center - die Componenten
werden in der form1 zentriert
-
Left - die Componenten
werden linksbündig ausgerichtet
-
Right - die Componenten
werden rechtsbündig ausgerichtet
-
Full - die Componenten
werden über die ganze Breite der form1 verteilt (Ähnlich wie
wenn man in einer Textverarbeitung einen Absatz im Block formartiert)
Das Pulldown-Menü Align
Vertical ist für die verticale (senkrechte) Ausrichtung der Componenten
zuständig. Hier gibt es ebenfalls vier Einstellmöglichkeiten:
-
Center - die Componenten
werden in der form1 zentriert
-
Top - die Componenten
werden nach oben ausgerichtet
-
Bottom - Die Componenten
werden nach unten ausgerichtet
-
Full - Die Componenten
werden über die gesamte Höhe der form1 gleichmäßig
verteilt.
Die Nummernbox Tile Spacing
legt den Abstand der Componenten untereinander in Pixel fest.
Die Nummernbox Horiz.
Insert legt den Abstand der Componenten vom linken und rechten Rand
der form1 fest.
Die Nummernbox Vertical
Insert legt den Abstand der Componenten vom oberen und unteren Rand
der form1 fest.
Für unser Progrämmchen
nehmen wir die Einstellungen wie in Abbildung 5 dargestellt vor und übernehmen
diese mit Apply. Am Aussehen unserer Oberfläche hat sich noch nichts
verändert, sie sollte immer noch wie in Bild 4 dargestellt werden. |

Bild 5
|
Nun müssen noch die
Einstellungen für die einzelnen Componenten vorgenommen werden. Als
erstes wollen wir die Componente label1 verändern. Dazu klicken
wir einmal auf label1 in unserer form1, so dass dieses rot
umrandet ist (Bild 6). Im Fenster Component Properties müßte
jetzt in der ersten Zeile Properties for: label1 (label) stehen. |

Bild 6
|
Nun nehmen wir die Eintellungen
vor, wie in Bild 7 dargestellt. Die Vorgabe label1 im Feld Caption
Text löschen wir heraus und schreiben Es wurde noch kein Button
gedrückt in das Feld. Wenn das Ganze mit Apply bestätigt
wurde, müßte das Progrämmchen nun so aussehen:
Auf die gleiche Weise wie
label1 ändern wir nun die Einstellungen für button1 und
button2.
Bei button1 geben wir den Caption Text Knopf 1 und bei button2 den
Caption Text Knopf 2 ein. Hat alles geklappt, dann ist das Layout
für unser erstes Progrämmchen komplett, und es müßte
dann so aussehen:
Tip:
Man sollte sich angewöhnen, möglichst häufig abzuspeichern,
da NewBASIC ab und zu mal abstürzt oder hängen bleibt
|

Bild 7
|
Mit einem Klick auf Run
im Hauptfenster NewBASIC Builder können wir nun einen Probelauf
unseres Programmes starten. Man kann nun zwar die beiden Buttons Knopf
1 und Knopf 2 anklicken, aber passieren tut da noch nichts.
Um das zu ändern unterbrechen wir den Probelauf mit einem Klick auf
Stop.
Im Hauptfenster des NewBASIC
Builders wählen wir im Menü Window - Editor aus. Es öffnet
sich ein neues Fenster, in dem der Programmcode eingegeben werden kann.
Der obere Teil des Editor-Fensters
(Bild 8) ist in drei Spalten aufgeteilt. In der linken Spalte (Components:)
finden wir all unsere Componenten wieder, die wir in unser Programm eingefügt
haben. Die mittlere Spalte (Events:) zeigt die Ereignisse an, die
mit den einzelnen Componenten verbunden sein können. Klicken wir z.B.
in der linken Spalte button1 an, erscheint in der mittleren Spalte
pressed.
Die rechte Spalte (Routines:) zeigt die verfügbaren Routinen
an, dazu später mehr.
Im unteren Teil des Editor-Fenster
befindet sich der eigentliche Editor mit dem der Programmcode eingegeben
werden kann. Das heißt, soll etwas passieren, wenn die Buttons angeklickt
werden, dann muß hier angegeben werden, was passieren soll. Und das
wollen wir jetzt tun.
Wir vergesissern uns, dass
in der linken Spalte die Componente button1 und in der mittleren
Spalte das Event pressed markiert ist. Im Editierfenster sind nun
schon zwei Zeilen vorgegeben, die lassen wir so, wie sie sind. Unseren
Programmcode müssen wir zwischen diese beiden Zeilen eingeben.
|

Bild 8
|
Wenn der Knopf 1
angeklickt wird, soll der Text von label1 nicht mehr Es wurde
noch kein Button gedrückt lauten, sondern Knopf 1 wurde gedrückt.
Um dies zu erreichen geben wir zwischen die beiden vorgegebenen Zeilen
folgendes ein:
label1.caption
= "Knopf 1 wurde gedrückt"
Das gleiche machen wir mit button2.
Wir markieren also in der Spalte Components button2 und in der mittleren
Spalte pressed. Dort geben wir zwischen die beiden vorgegebenen
Zeilen
label1.caption
= "Knopf 2 wurde gedrückt"
ein.
Erläuterung dieser
Zeile Programmcode:
label1 |
bezeichnet die Componente
label1 |
caption |
gibt an, dass die Einstellung/Eigenschaft
Caption
Text von label1 geändert werden soll. Ursprünglich
haben wir diese Eigenschaft in den Component Properties bei Caption
Text für label1 festgelegt. |
"Knopf 2 ..." |
ist der neue Text für
label1.
Dieser Text muß in Anführungszeichen stehen. |
Wenn wir nun einen Blick
in die rechte Spalte Routines werfen, stellen wir fest, dass hier
zwei neue Routinen dazugekommen sind: button1_pressed und button2_pressed.
Wenn jetzt weitere Zeilen Programmcode z.B. bei Knopf 2 eingefügt
werden sollen, muß nur noch in der Spalte Routines die Routine button2_pressed
markiert werden.
Nun speichern wir unser Werk
mit File - Safe ab und machen mit Run einen Probelauf.
Hat alles geklappt, dann müßte beim Anklicken von Knopf 1
der Text des label1 jetzt Knopf 1 wurde gedrückt lauten
(bild 10). Oder wenn Knopf 2 angeklickt wurde, Knopf 2 wurde
gedrückt. |

Bild 9

Bild 10
|
Natürlich können
noch beliebig viele Sachen angegeben werden, die beim Anklicken der Knöpfe
ausgeführt werden. Einige Beispiele werde ich hier noch kurz erläutern.
In der Routine button1_pressed
tragen wir noch folgende Zeilen ein:
button1.enabled
= 0
button2.visible = 1
form1.caption = "NewBASIC
ist super"
button2.caption = "klick
mich"
In der Routine button2_pressed
tragen wir noch folgende Zeilen ein:
button2.visible
= 0
button1.enabled = 1
form1.caption = "Geos
for ever"
button1.caption = "jetzt
mich"
Erläuterungen:
button1.enabled = 0 |
der button1 wird inaktiv.
Festgelegt haben wir in den Component Properties enabled, also aktiv. |
button2.visible = 1 |
der button2 wird sichtbar
gemacht. Dies ist zwar im Moment schon der Fall, aber beim Hin- und Herklicken
wird er auch mal unsichtbar, so dass er beim Anklicken von button1
auf jeden Fall wieder sichtbar wird. |
form1.caption = "NewBASIC
ist super" |
Ändert den Caption
Text für die form1, der in den Component Properties am
Anfang auf Kurs Teil 1 gesetzt wurde, in den Text zwischen den Anführungszeichen. |
button2.caption = "klick
mich" |
Ändert den Caption
Text für den button2, der in den Component Properties am
Anfang auf Knopf 2 gesetzt wurde in den Text zwischen den Anführungszeichen
klick
mich. |
Wenn nun alles richtig eingegeben
wurde müßte unser Programm wie folgt funktionieren:
Start des Programmes:
Beim ersten Anklicken des
Buttons Knopf 1:
Beim Anklicken des Buttons
Knopf 2:
 |

Bild 11

Bild 12
|
Wenn nun alles prima funktioniert
kommt noch das Finale, die Kompilierung zu einem echten NewBASIC-Programm.
Dazu im im Menü des Hauptfenster NewBASIC Builder File - Build
for NewDeal anklicken. Es wird im gleichen Verzeichnis, in dem die
KURS_01.BAS abgespeichert wurde, eine Datei mit dem Namen KURS_01.BC angelegt.
Diese Datei ist dann das fertige NewBASIC Programm.
So, das war es erstmal mit
dem ersten Teil meines NewBASIC - Einsteigerkurses. Ich hoffe, meine Anleitungen
haben ein bischen zum besseren Verständnis beigetragen. Wie immer,
wird diese Serie von mir fortgesetzt, wenn genügend Interesse dafür
besteht. Und, damit ich auch weiß, ob Interesse besteht, habe ich
mir noch eine kleine Aufgabe ausgedacht: Schickt mir Euer fertiges, unkompiliertes
Programm, also die *.BAS - Datei per eMail an SigurdPistor@web.de
Und, damit man auch sieht,
ob der Kurs verständlich war, fügt Ihr noch einen dritten Button
mit der Aufschrift Restore in das Programm ein, bei dessem Anklicken das
ursprüngliche Fenster wieder hergestellt wird, so wie es beim Start
des Programmes ist.
Dann bleibt mir vorläufig
nur noch viel Spaß mit NewBASIC zu wünschen.
Seitenanfang |