Programmierung

Verwendung von Icons und benutzerdefinierten Bildern

Mit der CONZEPT 16-Version 5.6.05, die am Freitag freigegeben wurde, wurden neue Bilder für die Verwendung in der Benutzeroberfläche hinzugefügt. In diesem Artikel zeige ich Ihnen, wie Sie Ihrer Applikation einen neuen "Anstrich" verpassen.


Systembilder

Die hinzugefügten Bilder können mit den Eigenschaften wpImageTile und wpNodeStyle ausgewählt werden. Standardmäßig wird die bisherige Darstellung der Icons verwendet. Wird die Applikations-Eigenschaft wpTileTheme auf _WinTileThemeEnhanced gesetzt, werden applikationsweit an allen Stellen, bei denen die bisherigen Systembilder verwendet wurden, die neuen angezeigt.

// Neue Darstellung für Icons
_App->wpTileTheme # _WinTileThemeEnhanced;

Mit der Eigenschaft wpTileSize kann zusätzlich die Größe der neuen Bilder pro Objekttyp oder für alle Objekte gesetzt werden. In Menüs wird immer die Größe 16 x 16 Pixel verwendet. Für die anderen Objekte sind die Größen 16 x 16, 24 x 24, 32 x 32 und 48 x 48 Pixel verfügbar. Um die Größe der Bilder eines bestimmten Objekttyps zu setzen, muss der Objekttyp in Klammern angegeben werden:

// Bildgröße aller Buttons auf 48 x 48 Pixel setzen
_App->wpTileSize(_WinTypeButton) # 48;

Beispielsweise sieht das ImageTile _WinImgPaste im Vergleich so aus:

v.l. Classic, Enhanced 16 x 16, 24 x 24, 32 x 32 und 48 x 48

Benutzerdefinierte Bilder

Zusätzlich zu den Systembildern können benutzerdefinierte Bilder hinterlegt werden. Diese können in der neuen Ressourcenverwaltung, oder mit den Befehlen StoImportTile() bzw. StoWriteTileMem() importiert werden.

Dabei lassen sich auch Bilder mit unterschiedlichen Farbtiefen und Kachelgrößen importieren. CONZEPT 16 wählt dann das passende Bild je nach Farbtiefe des Systems und der Eigenschaft wpTileTheme aus. Die Voraussetzung dazu ist, dass die jeweils zusammen gehörenden Bilder den gleichen Importnamen haben. Für den "High Color Mode" wird an den Importnamen ".hcm" angehängt und für den "True Color Mode" ".tcm".

Folgende Grafik wird je nach Farbtiefe ausgewählt:

Importname   Farbtiefe des Systems   TileTheme
<Name> maximal 8-Bit beide
<Name>.hcm mehr als 8-Bit _WinTileThemeClassic
<Name>.tcm 24- und 32-Bit _WinTileThemeEnhanced

Ist keine Grafik mit der Endung .tcm vorhanden, wird die mit .hcm ausgewählt. Existiert auch diese nicht, wird die Grafik-Datei ohne Endung verwendet.

Verwendung der Bilder

Sowohl die System- als auch die benutzerdefinierten Bilder können in folgenden Objekten angezeigt werden:

  • Menü
  • Button / ColorButton / MenuButton
  • Hyperlink
  • Toolbar-Button / Statusbar-Button
  • DataList / DataListPopup
  • RecList / RecListPopup
  • TreeView

Zur Verwendung der Systembilder wird die Eigenschaft wpImageTile bzw. wpNodeStyle des jeweiligen Objektes auf den gewünschten Wert gesetzt. Bei den Listen wird das anzuzeigende Bild je nach Inhalt der Zelle ausgewählt. Die Spalten-Eigenschaft wpClmTypeImage muss auf _WinClmTypeImageC16 gesetzt werden.

Um benutzerdefinierte Bilder anzuzeigen wird bei Listen die Spalten-Eigenschaft wpClmTypeImage auf _WinClmTypeImageUser gesetzt. Zusätzlich muss die Eigenschaft wpTileNameUser bei Listen und dem TreeView auf den jeweiligen Namen der importierten Kachelgrafik gesetzt werden.

Die zu verwendende Grafik für die anderen Objekte wird über die Eigenschaften wpTileNameMenu, wpTileNameNormal, wpTileNamePressed und wpTileNameSelected des übergeordneten Fenster-, Toolbar- oder Statusbar-Objektes definiert. Weiterhin muss noch die Eigenschaft wpImageTileUser auf die Nummer der verwendeten Kachelgrafik gesetzt werden. Dies trifft auch für das TreeView-Objekt zu.

2 Kommentare

2 Kommentare “Verwendung von Icons und benutzerdefinierten Bildern”

  1. @Th.Eichele:
    Geht es beim Finden der Bilder darum geht, welche Tile-Bilder in die Datenbank importiert wurden?

    Wenn ja, können diese auch in der Ressourcenverwaltung eingesehen und exportiert werden. Bei jedem Bild steht ein Typ. Darüber kann festgestellt werden, bei welchen Objekten die Grafik eingesetzt werden kann.

Kommentar abgeben