Andreas Rozek Lesehinweise letzte Änderungen Gästebuch-Eintrag Mitteilungen an den Autor  English Version  zur Leitseite zum vorherigen Thema zum nächsten Thema  zur ersten Seite zur vorherigen Seite zur nächsten Seite

Waba - Schritt für Schritt

Die vorliegende Seite enthält einen Überblick über die ersten Waba-Aktivitäten des Autors. Die gezeigten Programme sollen einen einigermaßen systematischen Zugang zu den Besonderheiten dieses Systems liefern - als Einführung in Waba oder gar die Java-Programmierung sind sie jedoch nicht unbedingt geeignet.

Bitte beachten Sie auch die Betrachtungshinweise sowie die Liste der letzten Änderungen!

Themenübersicht

Die folgende Themenübersicht führt Sie unmittelbar zu der von Ihnen gewünschten Information - klicken Sie dazu einfach auf das Thema Ihrer Wahl:

Waba-Versuche auf einem PPC unter Windows CE

Die folgenden Programme dokumentieren die ersten Versuche des Autors mit Waba auf einem Compaq Aero 2130 unter Windows CE 2.11. Die meisten Programme wurden ursprünglich für eine der zahlreichen Beta-Versionen von Waba geschrieben und erst unlängst an Waba 1.0 angepaßt.

Um die Programme auf einem Rechner unter Windows CE auszuführen, muß zunächst (auf einem "richtigen" PC) der jeweilige Quelltext übersetzt werden. Unter der Annahme, daß der Platzhalter %waba-dir% das Verzeichnis symbolisiert, in welches das Waba-Entwicklungspaket installiert wurde, wird der Compiler des Java SDK von Sun Microsystems, Inc. dazu wie folgt aufgerufen:

  javac -classpath %waba-dir%\classes %source-file%

%source-file% steht dabei für den Namen der zu übersetzenden Quelltext-Datei. Für andere Java-Entwicklungsumgebungen muß der Aufruf entsprechend angepaßt werden.

Die so erzeugten Java-Klassen können nun (in Grenzen) mithilfe des WabaVM-Emulators getestet werden:

  java -cp .;%waba-dir%\classes waba.applet.Applet /color /w 240 /h 317 %class-name%

Die genannten Einstellungen bilden den Bildschirm eines farbfähigen Windows CE PPCs mit ausgeblendeter Windows Startleiste nach. Ohne die Option /color verhält sich der Emulator als unterstütze er nur Graustufen. %class-name% steht für den Namen der zu startenden Klasse (d.h. derjenigen, die das Hauptfenster der Applikation erzeugt) - ohne die Endung .class.

Ist der Test zur Zufriedenheit verlaufen, kann ein "Paket" generiert und auf den Windows CE Rechner übertragen werden. Das Paket wird mit folgendem Kommando erzeugt:

  exegen /l 32768 /t 8192 /m 32768 /s 8192 /p "%wince-dir%" \
    %class-name% %class-name% %class-name%

(Das Zeichen \ am Ende der oberen Zeile deutet an, daß das Kommando in dieser HTML-Datei nicht auf eine einzige Zeile paßt und deshalb auf zwei Zeilen verteilt wurde - bei der Kommando-Eingabe ist das Zeichen zu ignorieren) Die genannten Parameter stellen eine Reihe von Stacks und Heaps ein und sollen eine problemlose Ausführung der Programme garantieren - die genaue Bedeutung der Optionen kann in der zu Waba gehörenden Dokumentation nachgelesen werden. Die Angabe %wince-dir% legt das Verzeichnis (auf dem PPC) fest, in welchem Waba das erzeugte Programm suchen soll.

Das Kommando exegen erzeugt eine Reihe von Dateien: %class-name%.pdb und %class-name%.prc sind nur für PalmOS-Rechner von Bedeutung und lassen sich problemlos löschen. Die beiden anderen Dateien (%class-name%.wrp und %class-name%.lnk) müssen dagegen auf den PPC übertragen werden. Die Datei %class-name%.wrp gehört in das Verzeichnis %wince-dir%, die Datei %class-name%.lnk (zweckmäßigerweise) in das Windows-Startmenü (auf deutschsprachigen Systemen heißt dessen Basisverzeichnis \Windows\Startmenü\, allerdings kann die Datei auch in einem beliebigen Unterverzeichnis davon abgelegt werden). Sobald das Startmenü neu geöffnet wird, erscheint der Name des Waba-Programmes als neuer Eintrag, und das Programm kann von diesem Menü aus gestartet werden.

Waba_00 - erste Schritte unter Waba 1.0

Dieses Programm repräsentiert den ersten (noch einigermaßen unspezifischen) Versuch des Autors, eine Waba-Applikation zu erstellen. Waba_00 umfaßt im wesentlichen

  • die Anzeige wichtiger Kenndaten der Laufzeitumgebung (Plattform, Versionsnummer, Benutzername, Anzeigegröße und -typ),
  • die Anzeige eines "Graukeils" und eines Farbspektrums sowie
  • die Anzeige von Farb- und Graustufenbildern in verschiedenen Farbtiefen.

Bildschirmabzug vom WabaVM-Emulator (links) und einem Compaq Aero 2130

Zu dem Programm ist Folgendes zu bemerken:

  • die Höhe des (nutzbaren) Bildschirmbereiches (unter Windows CE) beträgt 317 Pixel, da die untersten 3 Pixelreihen von der (normalerweise ausgeblendeten) Windows-Startleiste belegt werden - der WabaVM-Emulator wurde auf dieselbe "Bildschirmgröße" eingestellt (deswegen erscheint der Bildschirmabzug des Emulators etwas kleiner);
  • auf dem Compaq Aero wird die unterste Zeile der Programmanzeige von der Windows Startleiste verdeckt - nur so kann (mithilfe des Programmes CaptCE [5]) der Bildschirmabzug erstellt werden;
  • unter Windows CE scheint der Benutzername nicht erfaßt zu werden;
  • das Programm erhält eine unnötige(?) "repaint"-Anforderung unmittelbar nach dem Eintreffen des ersten PenEvent. Dies ist insbesondere deswegen lästig, weil der Programmdurchsatz unter Waba ohnehin nicht sonderlich überzeugt (gemessen daran, was der Prozessor selbst eigentlich leisten müßte);
  • Komponenten dürfen sich nicht überlappen, da Waba etwaige PenEvents ansonsten nicht mehr richtig zuordnet.

Der Quelltext des Programmes sowie die verwendeten Rastergrafiken sind als ZIP-Archiv verfügbar:

Waba_01 - Anzeige der Auswirkungen der vier "DrawOp"s

Dieses Programm illustriert die Auswirkungen der vier "DrawOp"s auf die Ergebnisse der verschiedenen Zeichenbefehle (für Graustufen und Farben sowie bei Verwendung von "drawLine", "fillRect", "fillPolygon", "drawText" und "drawImage" - letzteres nur für Bitmaps mit einem Bit Farbtiefe). Da die verschiedenen Studien nicht alle zusammen auf den Bildschirm eines PDA passen, kann mithilfe einer "TabBar" zwischen fünf Anzeigen umgeschaltet werden.





Bildschirmabzug vom WabaVM-Emulator (links) und einem Compaq Aero 2130

Zu dem Programm ist Folgendes zu bemerken:

  • der WabaVM-Emulator unterstützt weder DRAW_AND noch DRAW_OR (eine entsprechende Notiz auf System.out weist auf diese Einschränkung hin);
  • bei Verwendung von Grauschattierungen können die Zeichenmodi DRAW_AND, DRAW_OR und DRAW_XOR unter Windows CE Farbverfälschungen erzeugen;
  • die Methoden Graphics.fillRect und Graphics.fillPolygon erzeugen unter Windows CE im Zeichenmodus DRAW_XOR unschöne Ränder - auf einem WabaVM-Emulator ist diese "Randbildung" konsequenter;
  • unter Windows CE ignoriert die Methode Graphics.drawText jegliche "DrawOp"-Einstellungen und verhält sich wie im Modus DRAW_OVER mit transparentem Hintergrund - auf einem WabaVM-Emulator verhält sich die Methode überhaupt fehlerhaft;
  • Hintergrundfarbe und Schriftsatz der von Waba bereitgestellten Komponenten lassen sich nicht einstellen;

Der Quelltext des Programmes sowie die verwendeten Rastergrafiken sind als ZIP-Archiv verfügbar:

Waba_02 - genauere Betrachtung des Waba-Grafikmodells

Nach den durchwachsenen Erfahrungen mit Waba_01 wird jetzt das von Waba bereitgestellte Grafikmodell etwas genauer unter die Lupe genommen (Position des Zeichenstiftes, Verlauf von Linienzügen, Füllen von Rechtecken, Zeichnen von Polygonen im Modus DRAW_XOR, Füllen von Polygonen). Außerdem werden das "offscreen rendering" sowie die Definition von Rastergrafiken mithilfe eines Pixelfeldes getestet.

Bildschirmabzug vom WabaVM-Emulator (links) und einem Compaq Aero 2130

Zu dem Programm ist Folgendes zu bemerken:

  • der Zeichenstift hängt "rechts unterhalb" der Zeichenposition, entsprechend verhält sich auch die Darstellung gerader Linien;
  • beim Füllen von Rechtecken wird der Bereich innerhalb der Koordinatenlinien ausgefüllt, das Ergebnis unterscheidet sich demzufolge von einer Aneinanderreihung von mittels Graphics.drawLine gezeichneten Linien. Interessant ist die Tatsache, daß Waba unter Windows CE auch negative Angaben für die Ausmaße des zu füllenden Rechteckes zuläßt (während der Emulator dies ignoriert) - allerdings sind die Ergebnisse nicht korrekt;
  • Polygone werden intern durch Aneinanderreihen ihrer Kanten realisiert - das Zeichnen im Modus DRAW_XOR hinterläßt folglich überall dort Lücken, wo sich eine gerade Anzahl von Kanten überlappen;
  • unter Windows CE werden gefüllte Polygone mit der zugehörigen Umrandung gezeichnet, unter dem WabaVM-Emulator ohne;

Der Quelltext des Programmes sowie die verwendeten Rastergrafiken sind als ZIP-Archiv verfügbar:

Waba_03 - die von Waba unterstützten Schriftarten

Dieses Programm prüft, welche der vom Java AWT unterstützten Schriftarten auch unter Waba genutzt werden können.

Bildschirmabzug vom WabaVM-Emulator (links) und einem Compaq Aero 2130

Zu dem Programm ist Folgendes zu bemerken:

  • unter Windows CE unterstützt Waba nur eine Schriftart, diese wiederum in zwei Schriftgraden (normal und fett) und etlichen Schriftgrößen - der WabaVM-Emulator verhält sich dagegen "Java-gerecht";

Der Quelltext des Programmes sowie die verwendeten Rastergrafiken sind als ZIP-Archiv verfügbar:

Waba_04 - metrische Kenngrößen der Schriftarten unter Waba

Nachdem bekannt ist, welche Schriftarten von Waba unterstützt werden, soll jetzt deren Metrik untersucht werden (auf solch kleinen Bildschirmen, wie sie für PalmTops üblich sind, kommt es mitunter auf jedes einzelne Pixel an - und die Kenntnis der Schrift-Metrik kann über das professionelle oder amateurhafte Erscheinungsbild einer Applikation entscheiden)

Bildschirmabzug vom WabaVM-Emulator (links) und einem Compaq Aero 2130

Zu dem Programm ist Folgendes zu bemerken:

  • "Leading" scheint unter Windows CE nicht wirklich unterstützt zu werden - stattdessen wird der Zeilenabstand auf den "Ascent" aufgeschlagen - der WabaVM-Emulator verhält sich dagegen "Java-gerecht";

Der Quelltext des Programmes sowie die verwendeten Rastergrafiken sind als ZIP-Archiv verfügbar:

Waba_05 - von Waba bereitgestellte Bedienkomponenten

Als nächstes werden die von Waba bereitgestellten Bedienkomponenten untersucht - und da Waba keine automatischen Layout-Mechanismen vorsieht, wird gleichzeitigt geprüft, wieviel Platz die einzelnen Komponenten jeweils für sich in Anspruch nehmen.


Bildschirmabzug vom WabaVM-Emulator (links) und einem Compaq Aero 2130

Zu dem Programm ist Folgendes zu bemerken:

  • die für den 3D-Effekt verantwortlichen Rahmenlinien haben eine Strichstärke von 2 Pixel;
  • die ankreuzbaren Felder von "Check"-Elementen haben eine Kantenlänge von 13 Pixel, der Abstand zum beschreibenden Text beträgt 4 Pixel;
  • die anwählbaren Felder von "Radio"-Elementen haben eine "Kantenlänge" von 12 Pixel, der Abstand zum beschreibenden Text beträgt 4 Pixel;

Der Quelltext des Programmes sowie die verwendeten Rastergrafiken sind als ZIP-Archiv verfügbar:

ASCIITable - Anzeige einer ASCII-Tabelle

Wie der Name schon andeutet, zeichnet dieses Programm eine ASCII-Tabelle auf den Bildschirm.

Bildschirmabzug vom WabaVM-Emulator (links) und einem Compaq Aero 2130

Zu dem Programm ist Folgendes zu bemerken:

  • offensichtlich unterstützt Waba unter Windows CE noch nicht einmal den vollen 8-bit Zeichensatz (auf dem Gerät des Autors wäre dies der Zeichensatz ISO 8859-1) - der WabaVM-Emulator verhält sich dagegen größtenteils "Java-gerecht";

Der Quelltext des Programmes sowie die verwendeten Rastergrafiken sind als ZIP-Archiv verfügbar:

Quelltexte

Die Quelltexte aller zuvor beschriebenen Programme mitsamt den zugehörigen Rastergrafiken können an dieser Stelle als ZIP-Archiv heruntergeladen werden:

Literaturhinweise

[1] Eiichiro Ito
CaptCE
CaptCE ist ein sehr kleines, einfaches und außerdem kostenloses Programm zur Erstellung von Bildschirmabzügen auf einem PalmTop unter Windows CE
(siehe http://www.oohito.com/index_e.htm, man muß allerdings ein wenig suchen - abhängig vom Prozessor, den der eigene PDA verwendet - um das Programm zu finden. Lassen Sie sich nicht von den japanischen Schriftzeichen irritieren (die Seiten enthalten genügend englischen Text, um den Leser zu führen)

Eine sehr schöne (englische) Beschreibung des Programmes und seiner Handhabung findet man unter http://www.windowscepower.com/issues/issue199909/screen001.html.

Haftungsausschluß

Bitte beachten Sie auch den Haftungsausschluß des Autors!

http://www.Andreas-Rozek.de/Waba/Acquainting/index.html    (letzter Stand: 09.04.2002)