Einzelnen Beitrag anzeigen

Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#23

AW: Vergleich Skinning Komponeten

  Alt 23. Feb 2011, 00:48
Ich möchte auf alle Fälle eine Lösung wo man NICHT alle Komponenten durch einen speziellen Komponentensatz austauschen muss, sondern eine zentrale Skinning-Komponente einfach auf die Form klatscht und der Rest halbwegs automatisch läuft.

Ich hab erst VCLSkin favorisiert bis ich hier gelesen hab, dass Luckie schreibt, die Komponenten waren "ein Griff in's Klo".
Um mal eine längere Odyssee durch verschiedene Skinningsysteme zusammenzufassen: Verabschiede Dich von "reinstecken und wohlfühlen". Wirklich gut funktionierende Skins bekommst Du nicht ohne angepasste Komponenten. Bei den Alphaskins - bei denen ich nach mehreren Schiffbrüchen in der Evaluierung anderer Skinsysteme dann geblieben bin - hält sich der Aufwand für eine Umstellung sehr in Grenzen: Für die meisten Komponenten gibt es ein Pendant mit einem kleinen "s". Aus TPanel wird TsPanel, aus TButton wird TsButton und so weiter. Im Endeffekt ist es fast so einfach wie ein projektweites "Suchen und Ersetzen". Danach öffnet man das Projekt in der Entwicklungsumgebung, zieht auf das Mainform einen TsSkinManager und einen TsSkinProvider drauf und fügt jedem weiteren Form einen TsSkinProvider hinzu - fertig. Der SkinManager sorgt für das Laden und Bereithalten der Skins, der SkinProvider sorgt für das korrekte Skinning aller Unterelemente des Forms auf dem er liegt.

Nebenbei ist die API so offen und der Hersteller so hilfsbereit, dass es kein Problem ist, eigene Controls zu bauen die sich z.B. die Hintergrundtextur holen (ja, es gibt hier auch Skins die mehr als nur eine einfache Hintergrundfarbe oder einen -gradienten haben!) um runde oder unregelmäßig geformte Bedienelemente nahtlos einzubetten.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat