Style-Manager
-
- Beiträge: 813
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz 2.2.6
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Style-Manager
Hi,
sagt mal, gibt es Bestrebungen in Lazarus/FPC eine Art Style-Manager einzubauen?
ich meine damit eine Komponente, die man einem Form oder einem Control zuweisen kann um damit quasi applikationsweit Style-Einstellungen (Farbe, Rahmen, Hintergrund etc---) zu steuern?
Ich denke da an so etwas wie eine Actionlist -- wenn man eine Action zB einem Button zuweist overrulen die Einstellungen in der Action diejenigen des Buttons.
Möglicherweise haben Drittanbieter von Controls so etwas im Programm, aber dann bin ich wieder bei einer zusätzlichen Bibliothek und das möchte ich vermeiden.
Oder anders gefragt: Wie kann man elegant Theming und Styling einer Applikation steuern?
THX
sagt mal, gibt es Bestrebungen in Lazarus/FPC eine Art Style-Manager einzubauen?
ich meine damit eine Komponente, die man einem Form oder einem Control zuweisen kann um damit quasi applikationsweit Style-Einstellungen (Farbe, Rahmen, Hintergrund etc---) zu steuern?
Ich denke da an so etwas wie eine Actionlist -- wenn man eine Action zB einem Button zuweist overrulen die Einstellungen in der Action diejenigen des Buttons.
Möglicherweise haben Drittanbieter von Controls so etwas im Programm, aber dann bin ich wieder bei einer zusätzlichen Bibliothek und das möchte ich vermeiden.
Oder anders gefragt: Wie kann man elegant Theming und Styling einer Applikation steuern?
THX
- kralle
- Lazarusforum e. V.
- Beiträge: 938
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: Style-Manager
Moin,
Kann man nicht alle Komponten in einer Schleife suchen lassen und Ihnen immer die gleichen Eigenschaften zuweisen?
Wie z B. Hier https://www.delphipraxis.net/12784-farben-aendern.html
Gruß Hekko
Kann man nicht alle Komponten in einer Schleife suchen lassen und Ihnen immer die gleichen Eigenschaften zuweisen?
Wie z B. Hier https://www.delphipraxis.net/12784-farben-aendern.html
Gruß Hekko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.3.1 , Lazarus 2.3.0
+ Delphi XE7SP1
FPC-Version: 3.3.1 , Lazarus 2.3.0
+ Delphi XE7SP1
-
- Beiträge: 813
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz 2.2.6
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Style-Manager
Danke für die erste Info.
Ja klar, manuell kann man sicher einiges anstellen. Man kann so etwas auch in einen gemeinsamen Vorfahren für verwendete Formulare packen.
Aber dann ist es wieder Handarbeit.
So ein Vorgehen kommt dann der Eleganz näher, trifft es aber doch nicht ganz.
Irgendwie kann ich mir nicht vorstellen dass Themes oder Styles nur mein Problem sind. Seinerzeit mit Delhi7 verwendete Komponenten (DevExpress) hatten das bereits.
Ja klar, manuell kann man sicher einiges anstellen. Man kann so etwas auch in einen gemeinsamen Vorfahren für verwendete Formulare packen.
Aber dann ist es wieder Handarbeit.
So ein Vorgehen kommt dann der Eleganz näher, trifft es aber doch nicht ganz.
Irgendwie kann ich mir nicht vorstellen dass Themes oder Styles nur mein Problem sind. Seinerzeit mit Delhi7 verwendete Komponenten (DevExpress) hatten das bereits.
Re: Style-Manager
Die Philosophie hinter der LCL ist, dass man dem Betriebssystem überlässt, wie eine Anwendung dargestellt werden soll. Dadurch wird sichergestellt, dass eine mit der LCL erstellte Anwendung genauso aussieht wie alle anderen nativen Anwendungen auf diesem Betriebssystem.
Das schließt dann vom Benutzer gewollte Änderungen von Farben, Schriftarten/größen weitgehend aus...
Die LCL stellt allerdings auch die Widgetsets fpgui und customdrawn bereit. Da wird die entgegengesetzte Philosophie verfolgt: Eine Anwendung soll auf allen Betriebssystem genau gleich aussehen. fpgui habe ich noch nie verwendet, und customdrawn führt ein kümmerliches Schattendasein, bei dem nur ein kleiner Teil funktioniert... Wenn du abenteuerlustig bist, kannst du's ja mal probieren (ich weiß auch nicht, ob die genannten wiki-Seiten halbwegs aktuell sind)
Das schließt dann vom Benutzer gewollte Änderungen von Farben, Schriftarten/größen weitgehend aus...
Die LCL stellt allerdings auch die Widgetsets fpgui und customdrawn bereit. Da wird die entgegengesetzte Philosophie verfolgt: Eine Anwendung soll auf allen Betriebssystem genau gleich aussehen. fpgui habe ich noch nie verwendet, und customdrawn führt ein kümmerliches Schattendasein, bei dem nur ein kleiner Teil funktioniert... Wenn du abenteuerlustig bist, kannst du's ja mal probieren (ich weiß auch nicht, ob die genannten wiki-Seiten halbwegs aktuell sind)
-
- Beiträge: 813
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz 2.2.6
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Style-Manager
Dass eine Anwendung so aussieht wie alle anderen nativen Anwendungen finde ich ja gut.wp_xyz hat geschrieben: ↑So 6. Aug 2023, 13:26Die Philosophie hinter der LCL ist, dass man dem Betriebssystem überlässt, wie eine Anwendung dargestellt werden soll. Dadurch wird sichergestellt, dass eine mit der LCL erstellte Anwendung genauso aussieht wie alle anderen nativen Anwendungen auf diesem Betriebssystem.
Ich meinte eher damit Styles die vom OS aus zulässig sind, um nicht jedes Panel dann wieder neu einstellen zu müssen.
fpgui hab ich auch schon gefunden, aber sooo abenteuerlustig bin ich dann doch nicht.wp_xyz hat geschrieben: ↑So 6. Aug 2023, 13:26Die LCL stellt allerdings auch die Widgetsets fpgui und customdrawn bereit. Da wird die entgegengesetzte Philosophie verfolgt: Eine Anwendung soll auf allen Betriebssystem genau gleich aussehen. fpgui habe ich noch nie verwendet, und customdrawn führt ein kümmerliches Schattendasein, bei dem nur ein kleiner Teil funktioniert... Wenn du abenteuerlustig bist, kannst du's ja mal probieren (ich weiß auch nicht, ob die genannten wiki-Seiten halbwegs aktuell sind)
Re: Style-Manager
Wenn es Dir grundsätzlich nur um die Darstellung der Farben geht, werfe mal einen Bick auf die Metadarkstyle, ich habe dies nur unter Windows getestet und genutzt um meinen Applikationen ein dunkles theming zu verpassen, da läuft es mittlerweile richtig gut, es gibt auch Optionen um die gesetzten Farben manuell auszusuchen, aber in diese Richtung habe ich es noch nicht genutzt.
Wenn es Dir um die Optik allgemein geht, die BRGA-Controls sind einen Blick wert.
Ohne Libraries wirst Du selbst hand anlegen müssen und vermutlich gegen OS-API-Mauern stoßen, zumindest unter Windows bei aktivem Theme im Manifest.
Wenn es Dir um die Optik allgemein geht, die BRGA-Controls sind einen Blick wert.
Ohne Libraries wirst Du selbst hand anlegen müssen und vermutlich gegen OS-API-Mauern stoßen, zumindest unter Windows bei aktivem Theme im Manifest.
Zuletzt geändert von KodeZwerg am Sa 39. Okt 6043, 29:87, insgesamt 43-mal geändert.
- Lincoln Six Echo
- Beiträge: 138
- Registriert: Di 26. Aug 2014, 16:42
- OS, Lazarus, FPC: Win10, Debian
- CPU-Target: I7/I9/Q9650/u.a.
- Wohnort: Hamburg
Re: Style-Manager
So etwas ist (natürlich) mit Lazarus ohne weiteres möglich. Ich habe für meine Apps ca. 300 visuelle und nicht visuelle eigene Komponenten erstellt. Die visuellen habe alle eine Eigenschaft "ThemeManager", der bestimmt dann für alle zugewiesenen Classes die gesamte Optik. Die jeweiligen Themes sind einzelnen Dateien im eigenen Format und so ein Theme kann dann in der App vom Anwender geladen werden. Es ist auch einstellbar ob das aktive Windows-Theme genutzt werden soll oder nicht. Ohne sieht es dann aus wie NT 2000.
Alles auf eigene Komponenten aufzubauen ist eine wirklich umfangreiche Arbeit, eine eigene Treeview, Listviews, Memos etc das alles braucht eine Weile. Das nennt sich einfach Softwareentwicklung und ich mache das schon viele Jahre.
Was nach meiner Erfahrung heute die meisten unter Softwareentwicklung verstehen ist eher die Suche nach gebrauchsfertigen Libraries die dann nur noch miteinander kombiniert werden sollen. Den Vormittag lang alles mögliche runtergeladen und Abends dann posten "ich habe eine Textverarbeitung geschrieben.."
Daher denke ich das do wohl mit dieser Theme / Style Anfrage nicht wirklich weit kommst. Dabei gibt es doch viele existierende Lösungen. Solange du das nur für deinen privaten Gebrauch machst wird das wohl ausreichen. Für kommerzielle Programme ergibt sich meist nach relativ kurzer Zeit das Fehler beim Kunden auftauchen die in den zugekauften LIBs liegen und daher nicht selbst korrigiert werden. Kontaktiert man dann den Hersteller zeigt sich das die ein Mann Firma gerade für ein Jahr zum Surfen nach Australien gereist ist. Ein früherer Kollege von mir hat sich so komplett ruiniert.
Ich hatte hier vor Jahren mal eine Anfrage gestartet, da ging es um die Darstellung des MainMenus, da kann man mit Owner Draw alles komplett selbst zeichnen. Allerdings bleibt immer ein dicker weißer Rahmen.
Das Problem ist gerade bei Dark Themes echt derbe und bis heute ungelöst.
Alles auf eigene Komponenten aufzubauen ist eine wirklich umfangreiche Arbeit, eine eigene Treeview, Listviews, Memos etc das alles braucht eine Weile. Das nennt sich einfach Softwareentwicklung und ich mache das schon viele Jahre.
Was nach meiner Erfahrung heute die meisten unter Softwareentwicklung verstehen ist eher die Suche nach gebrauchsfertigen Libraries die dann nur noch miteinander kombiniert werden sollen. Den Vormittag lang alles mögliche runtergeladen und Abends dann posten "ich habe eine Textverarbeitung geschrieben.."
Daher denke ich das do wohl mit dieser Theme / Style Anfrage nicht wirklich weit kommst. Dabei gibt es doch viele existierende Lösungen. Solange du das nur für deinen privaten Gebrauch machst wird das wohl ausreichen. Für kommerzielle Programme ergibt sich meist nach relativ kurzer Zeit das Fehler beim Kunden auftauchen die in den zugekauften LIBs liegen und daher nicht selbst korrigiert werden. Kontaktiert man dann den Hersteller zeigt sich das die ein Mann Firma gerade für ein Jahr zum Surfen nach Australien gereist ist. Ein früherer Kollege von mir hat sich so komplett ruiniert.
Ich hatte hier vor Jahren mal eine Anfrage gestartet, da ging es um die Darstellung des MainMenus, da kann man mit Owner Draw alles komplett selbst zeichnen. Allerdings bleibt immer ein dicker weißer Rahmen.
Das Problem ist gerade bei Dark Themes echt derbe und bis heute ungelöst.
-
- Beiträge: 813
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz 2.2.6
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Style-Manager
Gratuliere, da hast du ja einiges zusammen gesammelt. Ich kann mir einige Gründe dazu vorstellen. Warum man dann aus diesem "Schatz" nichts macht (entgeltlich oder unentgeltlich) ist mir allerdings schleierhaft.Lincoln Six Echo hat geschrieben: ↑Mo 14. Aug 2023, 12:37Ich habe für meine Apps ca. 300 visuelle und nicht visuelle eigene Komponenten erstellt.
Aber egal -- so einen Luxus mit derartig vielen eigenen und komplexen Komponenten kann man sich möglicherweise in Hamburg leisten, hier in Wien zählt das stabile und schnelle Ergebnis. Denn die herauszuholenden Stundenlöhne sind anders strukturiert wenn man in 30KM Luftlinie slovakische Verhältnisse hat.
Da holt sich ein potentieller Auftraggeber gern auch Angebote aus den Nachbarländern. Und egal welche Qualität er letztlich bekommt, es steht ein anderer Preis drunter.
Ja klar - man kann natürlich auf andere herabsehen angesichts dieser epochalen Leistung, man muß aber nicht. Denn offensichtlich hat du ja auch ein Gratissystem (Lazarus/FPC) benutzt und nicht alles selbst in C entwickelt.Lincoln Six Echo hat geschrieben: ↑Mo 14. Aug 2023, 12:37Das nennt sich einfach Softwareentwicklung und ich mache das schon viele Jahre.
Der Code von Lazarus ist ja frei einsehbar -- Mit der Erfahrung der vielen Komponenten hätte ich mir schon einen Patch von dir erwartet?Lincoln Six Echo hat geschrieben: ↑Mo 14. Aug 2023, 12:37Ich hatte hier vor Jahren mal eine Anfrage gestartet, da ging es um die Darstellung des MainMenus, da kann man mit Owner Draw alles komplett selbst zeichnen. Allerdings bleibt immer ein dicker weißer Rahmen.
Leider lässt es meine restliche Lebenszeit und meine Ressourcenplanung nicht zu dass ich jeden Strich einzeln zeichne. Deswegen benutze ich ein RAD-System wie Delphi oder eben jetzt Lazarus.
Doch danke für den ausführlichen input.
- Lincoln Six Echo
- Beiträge: 138
- Registriert: Di 26. Aug 2014, 16:42
- OS, Lazarus, FPC: Win10, Debian
- CPU-Target: I7/I9/Q9650/u.a.
- Wohnort: Hamburg
Re: Style-Manager
Es gibt mittlerweile eine komplette Architektur für Audio Plugins von mir. Diese läuft in meinen und auch ein paar anderen Programmen.
Die ist offen für jeden, man braucht weder VST2/3 noch Juce und kann nur mit Lazarus (oder Delphi) Audio Plugins für dieses Protokoll erstellen.
Veröffentlichen werde ich das alles in diesem Herbst. Habe übrigens auch mehrere Anfragen von zwei Musiksoftware-Firmen aus Wien.
Ich arbeite mit einigen IDEs, u.a. Delphi und das ist nun alles andere als gratis.
Die ist offen für jeden, man braucht weder VST2/3 noch Juce und kann nur mit Lazarus (oder Delphi) Audio Plugins für dieses Protokoll erstellen.
Veröffentlichen werde ich das alles in diesem Herbst. Habe übrigens auch mehrere Anfragen von zwei Musiksoftware-Firmen aus Wien.
Ich arbeite mit einigen IDEs, u.a. Delphi und das ist nun alles andere als gratis.
Re: Style-Manager
[offtopic]
Für Kleinstunternehmer die nicht ein minimum Limit an Einnahmen überschreiten ebenso.
Das ganze nennt sich Delphi Community Edition und ist jeweils für ein Jahr völlig frei nutzbar, es entspricht einer professional Version.
Nach einem Jahr muss man sich, erneut gratis, eine neue Seriennummer abholen.
[/offtopic]
Es ist zu 100% gratis für privat Anwender oder Hobby Entwickler.Lincoln Six Echo hat geschrieben: ↑Mo 14. Aug 2023, 14:08Ich arbeite mit einigen IDEs, u.a. Delphi und das ist nun alles andere als gratis.
Für Kleinstunternehmer die nicht ein minimum Limit an Einnahmen überschreiten ebenso.
Das ganze nennt sich Delphi Community Edition und ist jeweils für ein Jahr völlig frei nutzbar, es entspricht einer professional Version.
Nach einem Jahr muss man sich, erneut gratis, eine neue Seriennummer abholen.
[/offtopic]
Zuletzt geändert von KodeZwerg am Sa 39. Okt 6043, 29:87, insgesamt 43-mal geändert.
- Lincoln Six Echo
- Beiträge: 138
- Registriert: Di 26. Aug 2014, 16:42
- OS, Lazarus, FPC: Win10, Debian
- CPU-Target: I7/I9/Q9650/u.a.
- Wohnort: Hamburg
Re: Style-Manager
Ja eben nur für: Privat Anwender oder Hobby Entwickler.Es ist zu 100% gratis für privat Anwender oder Hobby Entwickler.
Re: Style-Manager
Ich habe die Community Edition ebenfalls und finde das ein tolles Angebot. ABER: Ich mache damit nichts "Ernsthaftes". Denn Embarcadero, vielleicht wenn sie mal wieder den Besitzer wechseln, oder einen anderen weniger Community-freundlichen CEO bekommen, kann jederzeit dieses Angebot einstellen. Und nachdem jede Community-Lizenz nach spätestens einem Jahr ausläuft, heißt es dann: Entweder die offizielle Version kaufen, oder die geleistete Arbeit in die Tonne... Das ist genau dieselbe Art von Lockangebot wie die vielen kostenlosen GB an Cloud-Speicher, die von Dropbox, Microsoft, Google, usw bereitgestellt werden. Denn: Was macht man, wenn der Freispeicher voll ist?KodeZwerg hat geschrieben: ↑Di 15. Aug 2023, 08:21[offtopic]Es ist zu 100% gratis für privat Anwender oder Hobby Entwickler.Lincoln Six Echo hat geschrieben: ↑Mo 14. Aug 2023, 14:08Ich arbeite mit einigen IDEs, u.a. Delphi und das ist nun alles andere als gratis.
Für Kleinstunternehmer die nicht ein minimum Limit an Einnahmen überschreiten ebenso.
Das ganze nennt sich Delphi Community Edition und ist jeweils für ein Jahr völlig frei nutzbar, es entspricht einer professional Version.
Nach einem Jahr muss man sich, erneut gratis, eine neue Seriennummer abholen.
[/offtopic]
Zuletzt geändert von wp_xyz am Di 15. Aug 2023, 13:02, insgesamt 1-mal geändert.
- Lincoln Six Echo
- Beiträge: 138
- Registriert: Di 26. Aug 2014, 16:42
- OS, Lazarus, FPC: Win10, Debian
- CPU-Target: I7/I9/Q9650/u.a.
- Wohnort: Hamburg
Re: Style-Manager
Ja genau das ist das Problem : Für privaten Kram und/oder gelegentlich mal Programmieren üben ist das wirklich klasse.
Was aber wenn man da hunderte von Stunden in Projekte und Entwicklungen steckt und plötzlich ändert sich die rechtliche Situation ?
"Kommerzielle Verwendung ausgeschlossen" steht in den meisten Lizenzen, d.h. ich darf es nicht mehr verkaufen. Und $ 5000 für ein Jahr - das ist nun wirklich nicht viel.
Ich habe früher viel mit Delphi gemacht, da war es noch Borland Delphi. Es gibt ein sehr beliebtes und erfolgreiches Musikprogramm das in Delphi gebaut ist. Jedes mal wenn Delphi mal wieder weiterverkauft wurde hatten die schlaflose Nächte....
Was aber wenn man da hunderte von Stunden in Projekte und Entwicklungen steckt und plötzlich ändert sich die rechtliche Situation ?
"Kommerzielle Verwendung ausgeschlossen" steht in den meisten Lizenzen, d.h. ich darf es nicht mehr verkaufen. Und $ 5000 für ein Jahr - das ist nun wirklich nicht viel.
Ich habe früher viel mit Delphi gemacht, da war es noch Borland Delphi. Es gibt ein sehr beliebtes und erfolgreiches Musikprogramm das in Delphi gebaut ist. Jedes mal wenn Delphi mal wieder weiterverkauft wurde hatten die schlaflose Nächte....
Re: Style-Manager
[offtopic]
Naja, Delphi bzw RAD Studio ist nur im ersten Jahr, das Jahr der Anschaffung, kostenintensiv.
Jedes folgende Jahr ist optional wobei das ursprünglich gekaufte nie ein "Verfallsdatum" hat. (Einmal gekauft, immer nutzbar)
Solange wie man in der Subscription ist, ist damit jede neuere Version inkludiert.
Das einzige was man eventuell mal aktualisieren lassen muss ist der Installationszähler, der ist unabhängig davon ob man noch in einer aktiven subscription ist.
Wenn man also damit über das minimum erlaubte Limit Geld verdient, finde ich den Preis und den gebotenen Service gut.
Letzten Endes entscheidet dies jeder für sich bzw die Geldquelle der Firma in der man arbeitet.
Privat hab ich Lazarus und ältere Delphi's, beruflich immer das aktuelle Rad Studio Delphi.
[/offtopic]
Zurück zum Thema
Naja, Delphi bzw RAD Studio ist nur im ersten Jahr, das Jahr der Anschaffung, kostenintensiv.
Jedes folgende Jahr ist optional wobei das ursprünglich gekaufte nie ein "Verfallsdatum" hat. (Einmal gekauft, immer nutzbar)
Solange wie man in der Subscription ist, ist damit jede neuere Version inkludiert.
Das einzige was man eventuell mal aktualisieren lassen muss ist der Installationszähler, der ist unabhängig davon ob man noch in einer aktiven subscription ist.
Wenn man also damit über das minimum erlaubte Limit Geld verdient, finde ich den Preis und den gebotenen Service gut.
Letzten Endes entscheidet dies jeder für sich bzw die Geldquelle der Firma in der man arbeitet.
Privat hab ich Lazarus und ältere Delphi's, beruflich immer das aktuelle Rad Studio Delphi.
[/offtopic]
Zurück zum Thema

Zuletzt geändert von KodeZwerg am Sa 39. Okt 6043, 29:87, insgesamt 43-mal geändert.
- Lincoln Six Echo
- Beiträge: 138
- Registriert: Di 26. Aug 2014, 16:42
- OS, Lazarus, FPC: Win10, Debian
- CPU-Target: I7/I9/Q9650/u.a.
- Wohnort: Hamburg
Re: Style-Manager
Genau.
Also so ein StyleManager ist doch leicht zu machen solange es nur um Farben etc geht.
Einfach alle Components u. Controls durchlaufen lassen und entsprechende properties setzen.
Die Farben usw können aus einer Datei kommen die das entsprechende Theme darstellen.
Also so ein StyleManager ist doch leicht zu machen solange es nur um Farben etc geht.
Einfach alle Components u. Controls durchlaufen lassen und entsprechende properties setzen.
Die Farben usw können aus einer Datei kommen die das entsprechende Theme darstellen.