
Ein häufiges Problem für unerfahrene Visual Basic-Programmierer ist das Problem verschwindender Schaltflächen und anderer Steuerelemente. Man setzt eine Schaltfläche in die rechte untere Ecke der Form, und wenn die Anwendung dann auf einem anderen Computer gestartet wird, ist die Schaltfläche spurlos verschwunden! Dieses Problem ist leicht zu vermeiden, sobald man etwas über die Bildschirmauflösung weiß. Unterschiedliche Monitore können, unabhängig von ihrer Größe, mit verschiedener Bildschirmauflösung eingerichtet sein. Unter Bildschirmauflösung versteht man die Anzahl der Pixel, mit der die Ausgabe am Bildschirm (Breite mal Höhe) erfolgt. Schaltflächen und andere Steuerelemente verschwinden, wenn sie z.B. an der Position 780, 524 eingerichtet worden sind, und dann zu einem Bildschirm mit Auflösung 640 x 480 gewechselt wird. Alle Bildschirmauflösungen nehmen als Ausgangspunkt die Position 0, 0 in der linken oberen Bildschirmecke.

Die obige Figur zeigt die relative Fläche, die drei unterschiedliche Bildschirmauflösungen zur Verfügung stellen. Selbstverständlich erhält man nie einen breiten schwarzen Streifen entlang der rechten und unteren Bildschirmseite, jede Auflösung füllt den gesamten Bildschirm aus. Der Effekt besteht darin, daß bei einer geringeren Auflösung die Größe aller Steuerelemente und Fenster anwächst. Es werden dabei weniger Pixel im gleichen Raum verteilt. Damit die sichtbare Ausgabe-Fläche des Bildschirms nicht zu klein wird, arbeiten Benutzer häufig mit einem 17", 19" oder sogar 21" Bildschirm, wenn sie mit Bildschirmauflösungen höher als 1024 x 768 zu tun haben.
Die Antwort lautet ja, und man braucht nicht mehrere Versionen desselben Programms zu schreiben. Die beste Art um bilschirmauflösungsunabhängige Programme zu schreiben ist die Resize-Methode einer Form. Unabhängig davon, ob eine Änderung der Bildschirmauflösung eingetreten ist oder ob eine Benutzeraktion vorliegt, können mit dieser Methode alle Steuerelemente neu positioniert werden.
Um dies zu testen, schreiben Sie ein kleines VB-Programm mit einer einzelnen Form. Setzen Sie auf diese Form vier Steuerelemente (Bezeichnungsfelder oder Optionsfelder wären hier am besten geeignet). Setzen Sie anschließend deren Caption-Eigenschaft auf 'Oben links', 'Oben rechts', 'Unten links' und 'Unten rechts'. Setzen Sie die Steuerelemente in die entsprechenden Ecken der Form (z.B. 'Unten links' in die untere linke Ecke der Form).
Starten Sie das Programm und ändern Sie ein paarmal die Größe der Form. Keines der Steuerelemente bewegt sich. Dies ist deswegen so, weil sie durch ihre Top- und Left-Eigenschaften fest auf ihrer Position verankert sind. Stoppen Sie das Programm und doppelclicken Sie auf die Form, um ein Code-Fenster zu bekommen. Wechseln Sie zur Resize-Methode, und tragen Sie dort folgenden Code ein:
Private Sub Form_Resize () Rem cmdObenLinks.Left bleibt unverändert Rem cmdObenLinks.Top bleibt unverändert cmdObenRechts.Left = frmResize.Width - 1600 Rem cmdObenRechts.Top bleibt unverändert Rem cmdUntenLinks.Left bleibt unverändert cmdUntenLinks.Top = frmResize.Height - 1000 cmdUntenRechts.Left = frmResize.Width - 1600 cmdUntenRechts.Top = frmResize.Height - 1000 End Sub
Starten Sie das Programm erneut, und beachten Sie, was diesmal bei einem Ändern der Größe der Form passiert. Sollten die Steuerelemente zu nah an den Seiten der Form sitzen, dann erhöhen sie den abzuziehenden Wert von der Form-Breite (Width). Sollten die Steuerelemente zu weit vom Rand entfernt sein, dann verringern Sie diese Zahl.
Anmerkung: in obigem Beispiel sind die auf der rechten Seite der Form gelegenen Steuerelemente immer 1600 Twips weniger als die Breite der Form. Das bedeutet, daß, ganz gleichgültig welche Größe die Form annimmt, diese Steuerelemente immer den gleichen Abstand zum rechten Rand haben werden. Eine andere Art der Neupositionierung und Größenanpassung von Steuerelementen ist die Verwendung variabler Berechnungen. Zum Beispiel könnte man cmdUntenRechts.Left = (frmResize.Width / 2) - (cmdUntenRechts.Width / 2) schreiben. Damit erhält man den Effekt, daß ein Steuerelement immer zentriert erscheint.
Das gute an der Verwendung von Graphik ist, daß man kein Künstler sein muß, um gute Benutzeroberflächen zu gestalten. Alles, was man wissen muß ist: was baut man in der Oberfläche ein, damit diese gut wird. Viele Windows-Anwendungen kommen mit einer umfangreichen Sammlung vonClip-art, welcher Copyright-frei ist und in Dokumenten, Tabellen, Präsentationen, usw. benutzt werden kann. Visual Basic ist keine Ausnahme, schauen Sie nach unter:
Es gibt drei Haupt-Typen von Graphiken, die Visual Basic verarbeiten kann: Bitmaps (.bmp), Symbole (.ico), und Metafile-Dateien oder vektorbasierte Graphik (.wmf). Bitmaps speichern die Daten von jedem einzelnen Pixel im Bild. Je größer das Bild ist, und je größer die Farbauflösung ist, desto größer wird die resultierende Datei. Symbole sind ähnlich, aber normalerweise physikalisch viel kleiner. Sie können für die Symbole der Anwendung oder für Schaltflächen-Symbole in einer Schaltflächenleiste verwendet werden. Metafile-Dateien speichern Informationen in einer völlig anderen Art als Bitmaps. Anstelle jedes einzelne Pixel zu speichern (was eine Menge Speicherplatz beansprucht, speichern Verktorgraphiken nur mathematische Formeln, die das Bild beschreiben. Nehmen wir als Beispiel ein ganz simples Haus, welches mit einem Rechteck und einem daraufgesetzten Dreieck gebildet wird. Eine Meta-Bilddatei speichert nur den Ort, an dem sich diese beiden Figuren auf dem Bild befinden, deren Ausmaße und Farbe. Der Vorteil von Meta-Bilddateien ist daß diese viel weniger Speicherplatz benötigen. Sie können auch ohne Qualitätsverlust merklich verkleinert oder vergrößert werden. Eines der Probleme von Bitmaps ist, daß sie beim Vergrößern "blockig" werden. Der Nachteil mit Meta-Bilddateien ist, daß sie keine photorealistischen Bilder verarbeiten können; solche Bilder müssen als Bitmaps gehandhabt werden.
Neben diesen drei von Visual Bsic unterstützten Graphikformaten gibt es noch eine ganze Reihe anderer Formate. Zum Beispiel sind die meisten im Internet zu findenden Bilder im GIF oder im JPEG-Format; beide Formate können von VB-Programmen nicht verwendet werden. Die Lösung für dieses Problem kann mit einem Graphik-Programm erledigt werden, das verschiedene Formate öffnen und speichern kann. Paint Shop Pro ist solch ein Programm, das GIF öffnen und als Bitmap speichern kann. Auch Lview Pro kann diese Aufgabe lösen. Die nachfolgende Tabelle listet einige der verbreitetsten Graphikformate auf, und einige Anwendungen, die diese Formate unterstützen (keine vollständig abgeschlossene Liste).
| Format | Typ | unterstützt durch VB | verarbeitbar mit |
|---|---|---|---|
| BMP - Microsoft Windows | Bitmap | VB3, 4 und 5 | MS Paintbrush/Paint Paint Shop Pro Lview Pro |
| CDR - Corel Draw | Vektor | Corel Draw | |
| CGM - Computer Graphics Metafile | VeKtor | Corel Draw Adobe Illustrator |
|
| GIF - CompuServe | Bitmap | VB5 | Paint Shop Pro Lview Pro |
| JPG - Joint Photo Expert Group | Bitmap | VB5 | Paint Shop Pro Lview Pro |
| PCX - Paintbrush | Bitmap | ZSoft Paintbrush MS Paintbrush/Paint Lview Pro |
|
| TIFF - Aldus Corporation | Bitmap | Paint Shop Pro Corel Draw Lview Pro |
|
| WMF - Windows Metafile | Vector | VB3, 4 und 5 | Serif Draw Plus Corel Draw |
Achtung: Manche Dateiformate haben mehrere Unterformate. Zum Beispiel, GIF-Bilder, die häufig im Internet verwendet werden, gibt es in vier Varianten: 87a (interlaced), 87a (non-interlaced), 89a (interlaced), und 89a (non-interlaced). Vergewissern Sie sich immer, welches Format sie für welche Aufgabe benötigen.
Tip: Wenn Sie Graphiken zwischen unterschiedlichen Betriebssystemen konvertieren müssen, dann ist PCX eine gute Wahl. Dieses Format kann unter Unix, GEM (Atari-Computer) und MS Windows eingesetzt werden.
Anmerkung: je höher die Auflösung ist, desto geringer wird die Farbtiefe sein. Das hat damit zu tun, daß Graphikkarten nur über einen begrenzten internen Speicher verfügen. Dadurch muß die Karte, wenn sie mehr Pixel in höheren Auflösungen verarbeiten muß, Speicher freigeben indem sie weniger Farben verarbeitet. Die meisten Video-Karten mit 1MB Speicher können zum Beispiel 16.7 Millionen Farben bei einer Bildschirmauflösung von 640 x 480 verarbeiten, 56535 Farben bei 800 x 600 und 256 Farben bei einer Auflösung von 1024 x 768. Es ist daher einleuchtend, daß für eine photorealistische Graphik entweder eine geringe Auflösung eingestellt werden muß, oder eine Graphikkarte mit größerem Speicher gebraucht wird.
Die derzeitige Monitor-Technologie kann nur eine zweidimensionale Benutzeroberfläche wiedergeben. Es gibt jedoch Tricks und Techniken, mit denen man die Illusion der Tiefe entstehen lassen kann. Eine der am häufigsten eingesetzte Technik ist die Verwendung von Schattierungen. Dafür müssen Sie sich nur entscheiden, ob Sie ihr Objekt in die Oberfläche hineinversenkt oder aus dieser herausragend haben wollen. Die einzige andere Sache, die Sie beachten müssen, ist daß sich die Lichtquelle stets in der oberen linken Ecke des Bildschirms befindet. Das Licht scheint herunter und nach rechts, in einem Winkel von 45 Grad. Beachten Sie die nachfolgenden Figuren und stellen sie fest, welche nach hinten eingelassen ist und welch nach vorne herausragt.

Die linke Abbildung sieht so aus als sei sie nach hinten zurückgesetzt, in die Form eingelssen, und die rechte scheint hervorzustehen.
Eine andere Technik um die illusion von Tiefe entstehen zu lassen, ist die Verwendung von Perspektive. Die nachfolgende Buchstabenliste einer Augenarzt-Praxis verwendet unterschiedlich große Buchstaben, wodurch die kleineren am unteren Ende nach hinten wegkippen zu scheinen. Mit Graphik-Programmen könnte man die Buchstaben noch vertikal etwas kippen, um den Effekt zu verdeutlichen.

Frage: Was passiert, wenn man einen Fehler bei der Verwendung der Perspektive macht? Manche Künstler, wie z.B. M. C. Escher, haben Berühmtheit erlangt durch die falsche Verwendung der Perspektive. Wie aus folgender Figur zu erkennen, kann die falsche Verwendung der Perspektive zu spektakulären Ergebnissen führen.

Splash-Screens sind kleine zentrierte Fenster, die Informationen über das Produkt, den Autors und manchmal auch Copyright-Informationen enthalten. Splash-Screen-Fenster haben keinen Titel, Umrandung oder Steuerelemente, und verschwinden nach etwa 2 bis 3 Sekunden. Das nachfolgende Beispiel ist ein Splash-Screen für ein fiktives Graphik-Programm namens Graph CJ17.
Um diese Splash-Screen in Visualk Basic zu verwenden, wird das Bild der Picture-Eigenschaft einer Form zugewiesen. Ein eigenes Bildfeld-Steuerelement wird nicht benötigt. In der Load-Methode der Form wird diese auf dem Bildschirm zentriert und ein Zeitgeber wird hinzugefügt, der nach drei Sekunden (interval = 3000) die Form ausblendet und die Hauptform lädt.

Tip: Bei Splash-Screens mit Tiefenwirkung sollte ein großer Kontrast zwischen Vorder- und Hintergrunfarben bestehen.
Eine normale Befehlsschaltfläche kann keine Graphik beinhalten, nur Text. Jedoch die 3D-Befehlsschaltfläche verfügt über eine Picture-Eigenschaft. Schaltfläche a in folgendem Beispiel zeigt die 3D-Schaltfläche mit einem hinzugefügten Text (Caption-Eigenschaft). Schaltfläche b ist die gleiche wie a, jedoch mit leerer Caption. Schaltfläche C ist in Wirklichkeit keine Schaltfläche, sondern ein Bildfeld, das die Graphik alleine anzeigt. Wird in der Click-Methode irgendwelcher Programmcode eingetragen, dann funktioniert dieses Bildfeld wie eine Befehlsschaltfläche.

Hauptseite