Einstieg in das Programmieren mit MATLAB

von: Ulrich Stein

Carl Hanser Fachbuchverlag, 2007

ISBN: 9783446412897 , 333 Seiten

Format: PDF, OL

Kopierschutz: DRM

Windows PC,Mac OSX für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Online-Lesen für: Windows PC,Mac OSX,Linux

Preis: 29,90 EUR

Mehr zum Inhalt

Einstieg in das Programmieren mit MATLAB


 

3 GUI (S. 134)

3.1 Grafische Benutzeroberfläche

Bei den bisher vorgestellten MATLAB-Programmen war es so, dass der Programmablauf bereits vor dem Start des Programms ziemlich genau festgelegt wurde. Alles kommt schön der Reihe nach. Nur an fest definierten Stellen kann es eine Verzweigung geben oder man wiederholt einen Abschnitt in einer Schleife. Zu genau vorbestimmten Zeiten werden Sie aufgefordert, Daten über die Tastatur einzugeben. Und nur dann, wenn das Programm es für richtig erachtet, bekommen Sie die Ergebnisse auf dem Bildschirm angezeigt.

Das heißt – der Ablauf ist vorhersehbar und folgt dem vom Programmierer vorgegebenen Muster, einem Plan, dem der Benutzer des Programms folgen muss. Bei Programmen mit grafischer Benutzeroberfläche (Graphical User Interface – GUI) scheint plötzlich alles anders zu sein. Jetzt hat der Benutzer das Kommando. Mit der Maus oder der Tastatur bestimmt er, wann die nächste Aktion startet und was das Programm dann machen soll.

Das klingt auf den ersten Blick alles sehr demokratisch und selbstbestimmt – ist aber letzten Endes nur Propaganda: Auch bei GUI-Programmen haben die Programmierer im Voraus genau festgelegt, wann welche Aktion durchgeführt wird. Und zur Kontrolle der Benutzereingaben werden exakt dieselben Programmstrukturen verwendet wie bisher, also Verzweigungen und Schleifen.

3.1.1 Das große Warten – Callbacks

Sie kennen wahrscheinlich die folgende Situation: Man möchte etwas zusammen unternehmen und wartet darauf, dass der Partner zurückruft, damit es endlich losgehen kann. Dieses große Warten ist das eigentliche Geheimnis von GUI. Während die bisher vorgestellten Programme nach dem Start sofort mit Benutzerabfragen, Berechnungen etc. loslegten, erzeugen GUI-Programme nach dem Start normalerweise nur die Daten für ein Startfenster (Window) und melden dem Betriebssystem, dass ein neues Fenster auf dem Bildschirm bereitsteht. Dann wartet das GUI-Programm in einer while-Schleife, der so genannten Message-Loop, auf „Meldungen" (messages) vom Betriebssystem.

Meldungen vom Betriebssystem – wie hat man sich das vorzustellen? Das Betriebssystem ist der Teil, durch den alle Ein- und Ausgaben im Rechner verwaltet werden. Eingaben, das sind für uns primär Tastatur-Eingaben und Klicks mit der Maus oder Änderungen der Mausposition. Alle Eingaben und die Ausgaben auf dem Bildschirm beziehen sich in Fenster( Window)-basierten Betriebssystemen immer auf ein bestimmtes, aktives Fenster auf dem Desktop des Rechners.

Das Programm, dem das zur Zeit aktive Fenster gehört, zum Beispiel das Startfenster einer GUI-Anwendung, wird im Message-Loop-Zustand vom Be- triebssystem informiert, wenn eine Tastatur-Eingabe oder eine Maus-Aktion erfolgt ist bzw. wenn ein eigenes Fenster auf dem Desktop aktiviert oder deaktiviert wurde – dies sind die Meldungen, die das Betriebssystem an das wartende, angemeldete Programm verschickt. Trifft nun eine Meldung beim GUI-Programm ein, dann wird je nach Art der Meldung reagiert.

Dieses Aufdröseln der Meldungen und das Zuordnen der Aktionen wird den GUIProgrammierern heutzutage glücklicherweise von mächtigen Bibliotheksfunktionen abgenommen – Funktionen, die zu verstehen auch geübten Programmierern oftmals schwerfällt. Auch MATLAB hat so ein mächtiges Tool (Interface-Builder), um GUI-Oberflächen zu erzeugen und zu verwalten: GUIDE (Graphical User Interface Design Environment).