Farben des Datenbankdesigns übernehmen
Zeigen Sie die WKL-Steuerelemente einer Datenbank in den Farben ihres Designs (Access: Entwurf › Designs) oder immer hell bzw. immer dunkel an. Listen, Schaltflächen und Kopfzeilen sehen dann aus wie die Access-Steuerelemente in ihrer Umgebung.
Voraussetzungen: WKL Forms Object Library 1.47 oder höher.
Lösungsüberblick
ColorSchemeist eine Eigenschaft jedes WKL-Steuerelements und des ObjektsWklToast. Sie kennt vier Werte vonWklColorScheme:wcoAutomatic(Standardwert),wcoLight,wcoDarkundwcoHighContrast.- Automatisch folgt in dieser Reihenfolge: dem Modus für hohen Kontrast von Windows, dann den Designfarben der Datenbank, sonst hell. Eine Datenbank ohne eigenes Design und ein UserForm in Excel oder Word werden hell dargestellt. Die Designeinstellung von Office selbst (Datei › Konto › Office-Design) und der App-Modus von Windows werden nicht berücksichtigt: Eine Datenbank sieht auf jedem PC gleich aus.
- Selbst gesetzte Farben haben Vorrang.
BackColorundForeColorfolgen dem Farbschema nur, solange sie ihre Systemvorgaben behalten (Fensterhintergrund, Fenstertext, Schaltflächenfläche). Eine im Eigenschaftenblatt oder per Code gewählte Farbe bleibt in jedem Farbschema erhalten. - Lesbar in jedem Farbschema. Text hält zu seinem Hintergrund einen Kontrast von mindestens 4,5:1, Linien und Symbole mindestens 3:1. Farben eines Designs, die diese Werte verfehlen, werden in Richtung der Textfarbe verschoben.
- Hoher Kontrast hat immer Vorrang. Im Modus für hohen Kontrast von Windows zeichnet jedes Steuerelement mit den Systemfarben des Kontrastdesigns des Benutzers, unabhängig vom Wert von
ColorScheme.
Umsetzung
Wählen Sie einmalig ein Design für die Datenbank: Öffnen Sie ein beliebiges Formular in der Entwurfsansicht, wählen
Sie Entwurf › Designs und dann ein Design (zum Beispiel Riviera). Die WKL-Steuerelemente, die auf
wcoAutomatic stehen, übernehmen dessen Designfarben beim nächsten Öffnen ihres Formulars; weiter ist nichts nötig.
Riviera, das Design der WKL-Produkte, liegt dem Release-Paket bei (themes\riviera). Seine Farben und die Regeln für
die Markierungen finden Sie in der Datei themes\riviera.md des Release-Pakets.
So legen Sie das Farbschema im Designer fest: Eigenschaftenblatt, Registerkarte Andere, Zeile
Benutzerdefiniert [...], Seite Darstellung, Karte Farbschema (ColorScheme).
Per Code, zum Beispiel für eine dunkle Liste auf einer Startseite und für Benachrichtigungen der Anwendung, die immer hell erscheinen:
Option Compare Database
Option Explicit
Private mToast As WklToast
Private Sub Form_Load()
Me!lstKunden.Object.ColorScheme = wcoDark
Me!barKopf.Object.ColorScheme = wcoDark
Set mToast = New WklToast
mToast.ColorScheme = wcoLight
End Sub
Private Sub cmdSpeichern_Click()
mToast.Show "Gespeichert.", wtkSuccess
End Sub
Sollen alle Steuerelemente eines Formulars einer Wahl des Benutzers folgen (zum Beispiel einer Einstellung „Dunkelmodus“ in einer Optionstabelle), setzen Sie die Eigenschaft in einer Schleife:
Public Sub SetSchemeOfForm(ByVal frm As Form, ByVal scheme As WklColorScheme)
Dim ctl As Control
For Each ctl In frm.Controls
If ctl.ControlType = acCustomControl Then TrySetScheme ctl, scheme
Next
End Sub
' WklBadge, WklValidator and ActiveX controls of other vendors have no ColorScheme (error 438).
Private Sub TrySetScheme(ByVal ctl As Control, ByVal scheme As WklColorScheme)
On Error Resume Next
ctl.Object.ColorScheme = scheme
End Sub
Hinweise
WklBadgeundWklValidatorhaben keine EigenschaftColorScheme: Sie zeichnen nur die Farben ihrer Arten (Information, Warnung, Fehler), die auf jedem Hintergrund ihre eigene blasse Füllung und dunkle Schrift behalten.- Die Designfarben werden beim ersten Zeichnen des Steuerelements über die Datenbank gelesen, nie während Access das Formular zeichnet, und erneut, wenn das Formular neu geöffnet wird oder
Requeryläuft. Ein Design, das bei geöffnetem Formular geändert wird, erscheint erst nach erneutem Öffnen des Formulars. ColorSchemewird mit dem Formular gespeichert. Ein ohne Wert gespeichertes Formular verwendetwcoAutomatic. Die meisten Datenbanken tragen das Standarddesign Office von Access (Access fügt es mit dem ersten Formular hinzu). Ihre WKL-Steuerelemente übernehmen dann dessen Designfarben – die Auswahl in der Office-Akzentfarbe, leicht graue Kopfzeilen – und passen so zu den Access-Formularen daneben. Setzen SiewcoLight, wenn ein Steuerelement unabhängig vom Design das schlichte helle Aussehen behalten soll.WklToastbehält die Einstellung nur, solange das Objekt besteht;wcoAutomaticliest die Designfarben bei jedemShoweinmal.
Verwandte Themen
- API-Referenz (Englisch): WklTreeView.ColorScheme und dieselbe Eigenschaft jedes anderen Steuerelements