Farbschema: Dunkel
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Farben des Datenbankdesigns übernehmen

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

  • ColorScheme ist eine Eigenschaft jedes WKL-Steuerelements und des Objekts WklToast. Sie kennt vier Werte von WklColorScheme: wcoAutomatic (Standardwert), wcoLight, wcoDark und wcoHighContrast.
  • 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. BackColor und ForeColor folgen 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

  • WklBadge und WklValidator haben keine Eigenschaft ColorScheme: 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 Requery läuft. Ein Design, das bei geöffnetem Formular geändert wird, erscheint erst nach erneutem Öffnen des Formulars.
  • ColorScheme wird mit dem Formular gespeichert. Ein ohne Wert gespeichertes Formular verwendet wcoAutomatic. 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 Sie wcoLight, wenn ein Steuerelement unabhängig vom Design das schlichte helle Aussehen behalten soll.
  • WklToast behält die Einstellung nur, solange das Objekt besteht; wcoAutomatic liest die Designfarben bei jedem Show einmal.

Verwandte Themen

de/wiki/msaccess/comctl/how-to/match-the-colours-of-the-database-design.txt · Zuletzt geändert: von Wolfgang van der Stille