Zum Inhalt springen

Gambas: Programmkontrolle

Aus Wikibooks



Programmstart

[Bearbeiten]

Ein fertiges Programm kann man auf verschiedene Arten starten:

  1. Aus der Programmierumgebung GUI mit F5
  2. Aus der Programmierumgebung GUI über die Menüleiste
  3. Vom Desktop her mit Klick auf das Programm, wenn man es kompiliert hat und im Desktop gespeichert hat.
  4. Mit Alt + F2 und Eingabe des Programmnamens, wenn man es kompiliert hat .

Spezielle Startmöglichkeiten:

  • Bei Klick auf einen Befehlsbutton.
    • Diese Version ist für den Anfänger am einfachsten zu verstehen.
  • Mit Form_Open()
    • Automatischer Programmstart mit dem Laden einer Form
  • Bei Doppelklick auf die Form (Event = DoppelClick)
  • Beim Berühren der Form mit der Maus (Event = Enter)

Besonderheiten

[Bearbeiten]

Ein Programm starten und sofort wieder beenden

[Bearbeiten]

Ob das Sinn macht sei dahingestellt. Wie es geht, zeigt folgendes Beispiel. Sie brauchen nur eine leere Form, um es in Gang zu bringen.

PUBLIC SUB Form_Open()
DIM a AS String[]
DIM x AS Integer
a = NEW String[]
FOR x = 0 TO 4
  a.Add(Str(x))
NEXT
a[0] = "Anna"
a[1] = "Anton"
a[2] = "Toni"
a[3] = "Max"
a[4] = "Klaus"
FOR x = 0 TO 4
  PRINT a[x]
NEXT
ME.Close 
END

Mit

PUBLIC SUB Form_Open()

wird das Programm direkt gestartet.

Mit

ME.Close 

in der vorletzten Zeile wird es gleich wieder beendet.

Frage dazu: Wie kann man das Direktausgabefenster programmtechnisch verkleinern?

Programmstart mit Argumentenübergabe

[Bearbeiten]

Noch zu bearbeiten

zweiten Programmstart verhindern

[Bearbeiten]

Noch zu bearbeiten

Programmende

[Bearbeiten]
  • Mit dem Schließen-Button, normalerweise ein Kreuz in der rechten oberen Fensterecke
  • Ende mit ME.Close nicht mit END wie in VB!
PUBLIC SUB Button1_Click()
  ME.Close 
END

Programmende mit ME.Close

[Bearbeiten]

In VB konnte man ein Programm mit dem Befehl END beenden. Das funktioniert in Gambas nicht. Auch der Befehl Quit produziert Fehlermeldungen. Nutzen Sie deswegen den Befehl ME.Close.

Das Beispielprogramm hat nur einen Befehlsbutton.

Starten Sie ein neues Projekt, holen Sie sich eine neue Form.

Holen Sie sich aus der Werkzeugkiste = Toolbox einen Befehlsbutton.

Drückt man auf den Button, soll das Programm sofort wieder beendet werden.

So schaut das Ganze aus:

Hinter dem Button1 und hinter der Form steht folgender Code:

PUBLIC SUB Button1_Click()
  ME.Close
END

Ende mit der ESC Taste

[Bearbeiten]
PUBLIC SUB Form_KeyPress()
  IF Key.Code = Key["Esc"] THEN ME.Close
END

oder einfach in den Eigenschaften des Buttons für das Beenden die Eigenschaft Cancel auf True stellen. Dadurch wird beim Drücken der ESC-Taste das selbe bewirkt, als würde man den Button mit der Maus anklicken

Probleme

[Bearbeiten]
  • Mit dem Befehl STOP gibt es Ärger.
  • Mit dem Befehl Quit gibt es öfter Ärger.
  • Mit Window.Close (ist nicht static).
  • Mit der Tastenkombination ALT + F4 kann man Fenster schließen.
  • Ende und vorher Datenbank schließen

Programm abwürgen

[Bearbeiten]
  • Das Programm beenden mit dem Klick auf den roten Punkt in der GUI
  • Das Programm beenden mit dem Klick auf das X rechts oben am Bildschirm
  • Ende mit ME.Close
  • Programm abwürgen mit Alt + F4
  • Programm abwürgen: Mit Strg + ESC, dann kpm aufrufen.
  • Mit Alt + F2 die Direkteingabe starten, dann kpm starten (kpm + Return)
    • Man erhält eine Aufstellung aller laufenden Prozesse
    • Den fehlerhaften Prozess markiert man und drückt unten die Taste kill = beenden.
  • Oder noch einfacher: Ein Konsolenfenster öffnen, killall gambas eingeben.
  • Andere Möglichkeit:
    • Ein Konsolenfenster öffnen, ps -d | grep gambas eingeben und Prozessnummer merken.
    • Nun folgt der Befehl kill -9 PROZESSNUMMER. Damit wird das komplette Gambas abgeschossen.
    • Möchte man nur einen bestimmten Prozess (Dialog etc) abschießen, sucht man sich mit: ps -ef | grep gambas den richtigen Prozess heraus und tötet ihn wie oben beschrieben. Diese Varianten des Abschießens überlebt kein Prozess. Daher ist ein Reboot des Systems unnötig!
  • Programm abwürgen mit Strg + Pause oder Strg + C funktioniert in Gambas nicht.
  • Programm abwürgen mit Strg + Alt + Entf funktioniert in Gambas nicht.