Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Gelöst: Skin mit Farbanpassung (https://www.delphipraxis.net/116035-geloest-skin-mit-farbanpassung.html)

Garfield 22. Jun 2008 09:16


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.

Clemens L. 22. Jun 2008 10:02

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?

Garfield 22. Jun 2008 10:42

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.

Neutral General 22. Jun 2008 12:01

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

Garfield 22. Jun 2008 14:06

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:

Zitat von Neutral General
Was schön wäre, wäre ein Hover-Effekt für den Minimieren- und Schließenbutton.

Genau!!!

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:

Zitat von Neutral General
Ansonsten siehts ganz nett aus, auch wenn diese sehr breite Titelleiste nicht so meinen Geschmack trifft ;)

So wie es ist, gefällt es mir auch nicht. Wenn Titelleiste beschriftet und noch ein paar Button untergebracht wurden, sollte die Sache schon etwas anders aussehen.

Anhänge gelöscht, siehe unten.

Garfield 22. Jun 2008 18:29

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.

Garfield 28. Jun 2008 17:12

Re: Skin mit Farbanpassung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Neutral General
... auch wenn diese sehr breite Titelleiste nicht so meinen Geschmack trifft ;)

Man könnte es auch so machen:

Garfield 28. Jun 2008 19:17

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 16:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz