AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Toolbar2000/SpTBX Themeservices-fähig machen?

Toolbar2000/SpTBX Themeservices-fähig machen?

Ein Thema von Codehunter · begonnen am 21. Apr 2017 · letzter Beitrag vom 9. Mai 2017
Antwort Antwort
Seite 1 von 2  1 2   
Foren-Tage 2017
DIE Konferenz für Delphi-Entwickler mit vielen Vorträgen und ganztägigen Workshops, veranstaltet u.A. von der Delphi-PRAXiS und Embarcadero.
21.-23. September 2017 in Hamburg · Mehr Infos unter forentage.de.
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
975 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Toolbar2000/SpTBX Themeservices-fähig machen?

  Alt 21. Apr 2017, 10:28
Hallo!

Ich benutze in vielen Projekten noch SpTBX und bin damit in vielerlei Hinsicht zufriedener als mit den mitgelieferten VCL-Komponenten. Allerdings passen die TBX-Themes und die Themeservices der VCL nicht zusammen. Oder genauer gesagt, mir ist nichts dahingehend bekannt, dass es ein "Wrapper-Theme" zur Anwendung der Themeservices auf SpTBX gibt.

Habe ich da etwas übersehen? Wenn nicht, besteht Interesse an solch einem Wrapper-Theme? Dann würde ich eins schreiben und unter liberaler Lizenz veröffentlichen.

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und manchmal Löcher in der Wand dahinter.
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.013 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Toolbar2000/SpTBX Themeservices-fähig machen?

  Alt 21. Apr 2017, 12:30
hi,

du müsstest die Engine von SpTBX umschreiben, so das sie auf die VCL-Engine funktioniert. Dann könnte man beide welten nutzen

Denn letztlich machen beide ja das gleiche, sie stellen Zeichenroutinen für die Controls zur Verfügung.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
975 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: Toolbar2000/SpTBX Themeservices-fähig machen?

  Alt 24. Apr 2017, 07:19
du müsstest die Engine von SpTBX umschreiben, so das sie auf die VCL-Engine funktioniert.
Nicht ganz. Die Engine ist ja schon da. Es müsste nur eine Theme-Unit her, die eben mit den VCL-Themeservices pinselt. Der Gedanke ist eigentlich naheliegend, weshalb ich mich gefragt habe ob das nicht schon irgendwann mal jemand gemacht hat und ich mir die Arbeit sparen kann.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und manchmal Löcher in der Wand dahinter.
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.013 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: Toolbar2000/SpTBX Themeservices-fähig machen?

  Alt 24. Apr 2017, 09:33
Ja...aber die Engine übernimmt das Zeichnen bei SpTBX..nicht das Theme.

Das Theme definiert nur die Farben/Farbverläufe
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
975 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: Toolbar2000/SpTBX Themeservices-fähig machen?

  Alt 25. Apr 2017, 07:27
Nein nicht so ganz

Zwar sind praktisch alle Skins die ich kenne, so konstruiert dass die nahezu nur Sätze an Farben definieren. ABER: Alle Skins sind von der Klasse TSpTBXSkinOptions abgeleitet und die hat alle benötigten Pinselfunktionen virtual deklariert. Es wäre also theoretisch schon möglich, eine VCL-Theme-Skin-Unit zu schreiben. Wie ich gesehen habe adaptiert SpTBXSkins.pas sogar schon die Style- bzw. Themeservices.

Allerdings könnte ich nur für die Themeservices entwickeln weil ich nur Delphi 7 (da gabs weder das eine noch das andere) und dann ab XE4 aufwärts (da war es schon nur noch Themeservices) besitze. Ja ich weiß ich kann die älteren lizenzrechtlich nutzen, aber da wird mir dann der Aufwand mit zig IDEs nur für dieses Projekt zu groß. Ich könnte ja Stubs vorsehen die dann andere mit Leben füllen.

Aber wie gesagt, erstmal muss der Bedarf dafür da sein. Bei mir ist es derzeit ein "Nice to have" und kein "Must have".
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und manchmal Löcher in der Wand dahinter.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
975 Beiträge
 
Delphi 10 Seattle Professional
 
#6

AW: Toolbar2000/SpTBX Themeservices-fähig machen?

  Alt 8. Mai 2017, 15:43
Also ich hab da jetzt mal ein bisschen mit experimentiert. Wenn man sich eingehender damit befasst, dann merkt man recht schnell wie unausgereift diese ganze Skinnerei eigentlich ist. Und zwar auf beiden Seiten: Sowohl (Sp)TBX als auch VCL-StyleServices haben ihre Macken.

Interessant ist, dass die VCL nur ein Subset dessen implementiert, was die VCL-StyleServices so beherrschen. Bestes Beispiel Popup-Menüs: Die erscheinen beim TPopupMenu immer im nativen Windows-Stil, auch wenn ich in den Projektoptionen einen VCL-Theme angegeben habe. Implementiere ich die Menü-Pinselei aber in ein SpTBX-Theme, dann werden die Dropdowns durchaus auch gethemed.

Die Theme-Engine von SpTBX verwendet intern keine 32-Bit-Bitmaps, weshalb an manchen Stellen die Fuchsia-TransparentColor erscheint. Das lässt sich nur mit einer Skin-unit nicht lösen, dazu müsste die SpTBXSkins.pas gepatched werden.

Die Graphite-Themes der VCL zeichnen Toolbars schneeweiß, wovon man im ansonsten dunkel gehaltenen Stil Augenkrebs bekommt. Übel wird das dann in Kombination mit dem SpTBXTabSet, welches die Tableiste mittels einer Toolbar realisiert.

Die VCL-Themes stellen speziell bei den dunklen Themes oftmals falsche Textfarben bereit, sodass man kaum die schwarze Schrift auf dem dunkelgrauen Hintergrund lesen kann.

Eine kleine Demo hab ich mal beigefügt, da kann man sich die Misere anschauen.
Angehängte Dateien
Dateityp: zip TBXThemeServices.zip (3,03 MB, 3x aufgerufen)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und manchmal Löcher in der Wand dahinter.
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.013 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

AW: Toolbar2000/SpTBX Themeservices-fähig machen?

  Alt 8. Mai 2017, 17:37
Das mit der dunklen Schrift auf dunklem Hintergrund kann ich bestätigen. Allerdings ist das nicht Sache der Engine sondern des Themes selbst. Über den Editor könnte man das im Theme entsprechend anpassen

Analog dazu ist das ganze bei der Toolbar.

Grundsätzlich unterscheiden sich die beiden Engines einfach darin, das die VCL überwiegen Grafiken (aus einer entsprechenden Vorlage) verwendet, um Controls darzustellen. SpTBX dagegen verwendet reine Farbeinstellungen und entsprechende Zeichenroutinen um die Controls darzustellen.

D.h. das du im Prinzip die SpTBX-Engine-Methoden auf die entsprechenden VCL-Engine-Methoden umbiegen musst. Wenn du die SpTBX-Themes dann verwenden willst musst du die entsprechenden Grafiken anfertigen.

Evtl. wärs sinnvoller, die SpTbx-Controls so anzupassen, das sie via. Property entweder Sptbx oder VCL-Themeing unterstützen, ohne die Engines selbst anzupassen.

Viel Arbeit isses so oder so
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.573 Beiträge
 
Delphi 2007 Professional
 
#8

AW: Toolbar2000/SpTBX Themeservices-fähig machen?

  Alt 9. Mai 2017, 06:21
Interessant ist, dass die VCL nur ein Subset dessen implementiert, was die VCL-StyleServices so beherrschen. Bestes Beispiel Popup-Menüs: Die erscheinen beim TPopupMenu immer im nativen Windows-Stil, auch wenn ich in den Projektoptionen einen VCL-Theme angegeben habe.
Ich glaube, das und viele andere Unzulänglichkeiten werden hier gefixt: https://github.com/RRUZ/vcl-styles-utils
Uli Gerhardt
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.013 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

AW: Toolbar2000/SpTBX Themeservices-fähig machen?

  Alt 9. Mai 2017, 06:40
Richtig. Die funktionieren allerdings nur mit den VCL-Sourcen (Starter is also außen vor).
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.573 Beiträge
 
Delphi 2007 Professional
 
#10

AW: Toolbar2000/SpTBX Themeservices-fähig machen?

  Alt 9. Mai 2017, 06:46
Richtig. Die funktionieren allerdings nur mit den VCL-Sourcen (Starter is also außen vor).
Wieso das? Werden die Originalsourcen gepatcht oder so?
Uli Gerhardt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2017 by Daniel R. Wolf