Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.
Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.
Grundlegendes zum Hinzufügen einer Schaltfläche haben Sie ja bereits weiter oben in Zusammenhang mit dem ersten benutzerdefinierten Beispiel-Ribbon gelesen. Nun möchten Sie der Schaltfläche vielleicht ein Symbol hinzufügen, da diese sonst ein wenig einsam aussieht (keine Sorge, wir fügen später auch noch weitere Steuerelemente hinzu). Dazu gibt es verschiedene Möglichkeiten:
Verwenden eines Symbols der Microsoft-Office-Bibliothek
Hinzufügen einer benutzerdefinierten Bilddatei mit der Callback-Funktion LoadImage für das customIU-Objekt
Hinzufügen einer benutzerdefinierten Bilddatei mit der Callback-Funktion getImage des button-Elements oder sonstiger Steuerelemente
In den folgenden Abschnitten erfahren Sie mehr über die ersten beiden Methoden und darüber, was es mit der Callback-Funktion getImage auf sich hat.
Hinzufügen eines eingebauten Symbols
Die größte Hürde beim Hinzufügen eines bereits in einem der Ribbon-Steuerelemente vorhandenen Bildes ist, den Namen des jeweiligen Steuerelements herauszufinden. Dabei hilft die Access-Tabelle aus [3]. Aus dieser Tabelle suchen Sie die Bezeichnung des gesuchten Steuerelements heraus und entnehmen dann der Spalte ControlName die englische Bezeichnung. Wenn Sie beispielsweise eine Schaltfläche mit dem Speichern-Symbol versehen möchten, passen Sie die Definition des button-Elements an, indem Sie das Attribut imageMso wie folgt hinzufügen:
Die Schaltfläche sieht dann wie in Abbildung 12.10 aus.
Abbildung 12.10: Eine Schaltfläche mit einem eingebauten Symbol
Wenn Sie wissen möchten, welches Image wie heißt, finden Sie auf der Buch-CD eine passende Beispieldatenbank (\Kap_12\imagemsos.accdb). Die Datenbank zeigt alle über 4000 Symbole in mehreren Ribbon-Tabs an, wodurch das Laden der Datenbank einige Momente dauern kann. Nach dem Klick auf eines der Symbole zeigt ein Formular direkt das passende Attribut wie etwa imageMso="CreateFormBlankForm" zum Kopieren und Einfügen in die XML-Datei an.
Hinzufügen einer benutzerdefinierten Bilddatei per loadImage
Zum Einfügen einer benutzerdefinierten Bilddatei sind zwei Anpassungen am XML-Dokument und zusätzlicher VBA-Code notwendig. Fügen Sie zunächst der Definition der Schaltfläche, die mit einem Symbol ausgestattet werden soll, das Attribut Image hinzu und versehen Sie dieses mit dem Namen der zu verwendenden Bilddatei:
Zusätzlich müssen Sie Access mitteilen, dass die im Ribbon enthaltenen benutzerdefinierten Symbole geladen werden sollen. Dazu fügen Sie dem Root-Element customUI das Attribut loadImage mit dem Namen einer Callback-Funktion hinzu, die einen Objektverweis auf das jeweils zu verwendende Image zurückliefern soll:
Das loadImage-Attribut sorgt dafür, dass beim Initialisieren des Ribbons alle in Steuerelementen angegebenen image-Attribute ausgewertet und die passenden Symbole hinzugefügt werden. Für die angegebene Callback-Funktion müssen Sie natürlich eine passende VBA-Routine anlegen - die hier interessanterweise gar nicht als Funktion, sondern als Sub-Prozedur ausgeführt werden muss und statt eines Funktionswertes den Rückgabewert per Parameter liefert. Die Funktion sieht wie folgt aus:
Public Sub LoadImage(control, ByRef image) Set image = LoadPictureGDIP(CurrentProject.Path & "\" & control) End Sub
Listing 12.7: Die LoadImage-Routine liefert das per Parameter angegebene Bild zurück
Der erste Parameter control enthält die mit dem Attribut image angegebene Zeichenkette und damit in der Regel den Dateinamen der zu verwendenden Datei. Sie können diese auch mit komplettem Pfad angeben, aber wenn Sie die passenden Bilddateien in einem Verzeichnis unterhalb des Datenbankverzeichnisses oder im Datenbankverzeichnis selbst (wie in diesem Fall) speichern, reicht der pure Dateiname des Bildes.
Die Routine weist dem Parameter image einen Objektverweis auf ein mit der Funktion LoadPictureGDIP geladenes Bild zu. Die Funktion LoadPictureGDIP stammt aus dem in Kapitel 11, »Bilder und binäre Dateien« vorgestellten Standardmodul mdlOGL2007. In dem Kapitel haben Sie auch erfahren, wie Sie Bilder in einem OLE-Feld speichern und daraus ein StdPicture-Objekt erzeugen, das Sie direkt ohne Umweg über das Dateisystem für die Anzeige in einem Steuerelement eines Ribbons verwenden können. Das Ergebnis sieht schließlich wie in Abbildung 12.11 aus - eine Schaltfläche mit einem benutzerdefinierten Symbol.
Abbildung 12.11: Eine Schaltfläche mit einem benutzerdefinierten und auf der Festplatte befindlichen Symbol
Ribbon- Schaltfläche anpassen
Anhand der soeben erzeugten Schaltfläche lassen sich leicht die weiteren Attribute von Schaltflächen und sonstigen Steuerelementen erklären.
Größe der Schaltfläche
Die Größe der Schaltfläche passen Sie über das Attribut size des button-Elements an. Es stehen die Werte normal (Standard) und large zur Verfügung. Die obige Schaltfläche sieht größenmäßig wie in Abbildung 12.12 aus.
Abbildung 12.12: Eine Schaltfläche in der Ausführung »large«
Hilfetexte
Die Attribute screentip und supertip sind das (erweiterte) Pendant zum Attribut ControlTipText. Erweitert deshalb, weil Sie mit den beiden Attributen eine Überschrift und einen zusätzlichen Text angeben können. Das mit folgender Zeile definierte Schaltflächen-Element sieht wie in Abbildung 12.13 aus:
Abbildung 12.13: Eine Schaltfläche mit screentip- (Überschrift) und supertip-Attribut (Text)
Zeilenumbrüche innerhalb des Textes für das Attribut supertip markiert die Zeichenfolge: