Anwendungsentwicklung für Symbian OS
Anwendungsentwicklung für Symbian OS
Anwendungsentwicklung für Symbian OS
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Das Makro TRAP bzw. TRAPD stellt einen Mechanismus zur Verfügung, der<br />
mit dem Exception-Handling in anderen Programmiersprachen vergleichbar<br />
ist. Der erste Parameter ist dabei eine Variable, in der ein Fehlercode gespeichert<br />
wird. Der zweite Parameter ist die auszuführende Funktion. Eine<br />
Funktion kann mittels USER::LEAVE() die normale Ausführung beenden<br />
und die Exception-Behandlung anstoßen. Als Programmierkonvention gilt es<br />
Funktionen, die solche Fehler auslösen können, mit einem L am Ende des<br />
Funktionsnamens zu kennzeichnen. Das __ASSERT_ALWAYS-Makro überprüft<br />
anschließend, ob die in TRAPD ausgeführte Funktion einen Fehler zurückgeliefert<br />
hat und reagiert entsprechend. Durch den Aufruf von User::Panic()<br />
wird eine Systemreaktion (Panic) ausgelöst. Dies führt dazu, daß der Kernel<br />
die Programmausführung stoppt und den kompletten zum Prozess gehörenden<br />
Speicher freigibt.<br />
Das eigentliche Verhalten der Anwendung wird durch die Befehle Printf()<br />
und Getch() des Konsolenobjekts realisiert. Printf() gibt dabei eine Zeichenkette<br />
auf der Konsole aus, während Getch() auf eine Benutzereingabe<br />
wartet und danach mit der Ausführung des Programms fortfährt.<br />
Der Parameter _L("Hello World!\n"), welcher Printf() übergeben wird,<br />
ist mit einem String-Objekt vergleichbar. In <strong>Symbian</strong> werden anstelle von<br />
Strings so genannte Deskriptoren verwendet. Diese entsprechen im Grunde<br />
einer String-Klasse und bieten ähnliche Funktionen an. Dazu zählt u.a. das<br />
Suchen von Zeichen oder der lexikographische Vergleich. Zur Erstellung von<br />
Deskriptoren existieren zwei Makros. Das Makro _L erzeugt einen Deskriptor<br />
ohne einen Namen dafür zu vergeben. Er kann so direkt als Parameter<br />
übergeben werden. Werden Deskriptoren an mehreren Stellen benötigt, ist es<br />
sinnvoll mittels _LIT 25 einen benannten Deskriptor zu erzeugen.<br />
4.4.2 Graphische-Anwendung<br />
GUI-Anwendungen 26 für <strong>Symbian</strong> basieren auf CONE 27 und EIKON 28 . CO-<br />
NE ist hierbei die zugrunde liegende Schicht, die eine Zeichenfläche auf<br />
dem Display bereitstellt und für die Eventbehandlung zuständig ist. EI-<br />
KON hingegen verwaltet das Look&Feel der Oberfläche. Die Komponenten<br />
von EIKON sind entsprechend austausch- und erweiterbar. So können Gerätehersteller<br />
die GUI-Komponenten ihrer Software anpassen und erweitern<br />
ohne tief in den Code des Betriebssystems einzugreifen. Auf der nächsten<br />
Schicht des Frameworks erben Klassen des UIKON-Frameworks von EIKON-<br />
25 _L bzw. _LIT steht dabei für Literal<br />
26 GUI: Graphical User Interface bzw. Grafische Benutzeroberfläche<br />
27 Control-Environment<br />
28 Griechisch für Aussehen, Form<br />
13