![]() |
Gelöst: Skin mit Farbanpassung
Ich möchte eine Form mit einem Skin versehen, wobei der Skin farblich angepasst wird.
Meine derzeitige Vorgehensweise: <strike>Ein </strike>PNG wird aus der Resource geladen, in ein Bitmap geladen, das Bitmap eingefärbt und in ein TImage geladen. Die Button zum Schliessen und Minimieren werden genauso geladen. Weil deren TImages nicht klickbar waren, wurden Panel daruntergelegt.[/f] Beim Close wird die Anwendung geschlossen und beim Minimize in den Systray minimiert. Das Einfärben: Die PNG enthalten die Helligkeitswerte der Bilder. Gemischt wird mit clActiveCaption. Das heißt, der entsprechende Farbwert wird von RGB nach HSV konvertiert und das Bild durch Austausch der Helligkeitswerte eingefärbt. Im Windows XP-Stil mit dem Farbschemata Blau, Olivgrün und Silber funktioniert dies ganz gut. Bei Windows klassisch liegen die Buttonbilder anscheinend unter den Panels. Vielleicht könntet Ihr es testen und mir Tipps geben, was ich noch verbessern kann. Anhänge gelöscht, siehe unten. |
Re: Skin mit Farbanpassung
Ich bevorzuge ja das klassiche Windows-Design, und sehe keine Buttons (Xp SP3). Der Farbverlauf ist blau, aber die Tabs grau, da könnte man vielleicht noch blau färben?
|
Re: Skin mit Farbanpassung
Es sollen nur der Rahmen und die Button eingefärbt werden. Der Bereich mit dem Pagecontrol soll so bleiben.
Wenn die TImages auf die Panel gelegt werden, sind Button auch bei Windows klassisch sichtbar. Nur die Transparenz funktioniert nicht richtig. Anhänge gelöscht, siehe unten. |
Re: Skin mit Farbanpassung
Hi,
Was schön wäre, wäre ein Hover-Effekt für den Minimieren- und Schließenbutton. Ansonsten siehts ganz nett aus, auch wenn diese sehr breite Titelleiste nicht so meinen Geschmack trifft ;) Gruß Neutral General |
Re: Skin mit Farbanpassung
Nun ohne extra TPanel und TImage für die Button. Es werden die drei PNG geladen, in ein BMP gezeichnet und in das TImage geladen. Damit funktioniert es auch bei der klassischen Ansicht.
Zitat:
Deshalb hatte ich es mit verschiedenen Button und mit TImage versucht. TSpeedButton - Wären eigentlich ideal. Wurden vom TImage überdeckt. TButton - Unterstützt keine Bilder. TBitBtn - Sah nicht schön aus. Irgendwie war da immer eine Kante im Weg. :gruebel: TPNGButton - Wurden ebenfalls vom TImage überdeckt. Oder hat da nur die message WM_NCHitTest gestört? Zitat:
Anhänge gelöscht, siehe unten. |
Re: Skin mit Farbanpassung
Liste der Anhänge anzeigen (Anzahl: 3)
Obwohl hier keine Beiträge mit Hilfestellungen kamen, hat der Thread anscheinend dazu geführt einen tagelangen Ideenstau aufzulösen. Auf jeden Fall ist mein Problem erst einmal gelöst.
Der Rahmen bzw das Hintergrundbild sowie die Masken für die Buttongruppe sowie die Buttonbilder liegen als PNG vor. Aus dem Rahmen und den Masken wird ein neues Bitmap erstellt und in das TImage geladen. Unter den Masken liegen TPNGButton, in welche jeweils drei Bilder (Normal, Over und Down) geladen werden. Diese werden teilweise eingefärbt. Der Minimize-Button minimiert die Anwendung als Icon in den Systray, der Close-Button beendet die Anwendung. Das Bild enthält eine Gesamtansicht des Formulars und Ausschnitte der Buttongruppe mit den einzelnen Zuständen. |
Re: Skin mit Farbanpassung
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Gelöst: Skin mit Farbanpassung
Im Projekt hatte ich zum Einfärben clActiveCaption gewählt. clGradientActiveCaption dürfte zutreffender sein.
Beim Beispiel in vorigen Beitrag sehen die Button rund aus. Damit dies ordentlich funktioniert, müsste jeweils ein Bild mit den drei Zuständen der Button erstellt, die Buttonbereiche ausgeschnitten und den TPNGButton zugewiesen werden. Denn die Bilder der Button sollten so groß sein wie die Button, damit man die Kontur nur beim Click sieht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz