Skins für Programm?

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
House
Beiträge: 19
Registriert: Fr 24. Okt 2008, 12:54

Skins für Programm?

Beitrag von House »

Hallo,

gibt es für Lazarus Skin-Komponenten? Sprich: Komponenten, die das Form-Design und die Komponenten des Programms z.B. in das MAC Design ändern? Oder irgendei anderes Design? Unter Delphi hatte ich mal sone Komponente, wenn die auf dem Formular lag, konte man im OI einen Skin auswählen, der dann da Design entsprechend verändert hat.

MfG
House

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Skins für Programm?

Beitrag von Euklid »

Hallo House,
House hat geschrieben:gibt es für Lazarus Skin-Komponenten? Sprich: Komponenten, die das Form-Design und die Komponenten des Programms z.B. in das MAC Design ändern?
Komponenten wie der TButten oder die Scrollbar werden von Lazarus "nativ" benutzt. D.h. das Design entspricht dem Design der verwendeten graphischen Schnittstelle (win32, gtk, gtk2, qt). Lazarus verwendet also kein "eigenes" Design sondern greift auf Bibliotheken zurück. Das hat den Vorteil, dass sich das Design des Programms an das verwendete Design des Systems anpasst. D.h. unter dem Mac-Betriebssystem kannst du nativ das Mac-Design einstellen (carbon widgetset z.B.). Das hat den Nachteil, dass sich nicht so einfach eine Skin über die Komponenten ziehen lässt. Um dies zu erreichen müsstest du eigene Komponenten erstellen, die deine Bedürfnisse erfüllen und die nativen Komponenten dadurch austauschen. Ähnliches hatte Nils schonmal vor,

http://www.lazarusforum.de/viewtopic.php?f=25&t=1303" onclick="window.open(this.href);return false;

ich glaube aber, er hat das Projekt aufgegeben.

Viele Grüße, Euklid

ulhau
Beiträge: 65
Registriert: Sa 27. Okt 2007, 13:27
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Seebergen

Re: Skins für Programm?

Beitrag von ulhau »

Hallo !

Das mit den Skins hab ich auch schon mal ausprobiert. Dabei habe ich mit TImages gearbeitet. An alle 4 Seiten und an alle 4 Ecken ein TImage gepackt das die Einzelbilder aufnimmt und die Sensorfunktionen bereitstellt zum vergrössern und verkleinern und verschieben. Die einzeldaten für Breite, Höhe u.s.w. werden in einer Steuerdatei gespeichert. Das bezieht sich aber nur auf den Fensterrahmen und nicht auf die Einzelkomponennten die separat geskinnt werden müssten. Natürlich ist das mit den TImages etwas übertrieben und liese sich auch anders gestalten, aber für den Anfang und auf die Schnelle ...

Hier mal ein Beispiel als Bild, daß komplett mit Lazarus unter Windows realisiert wurde.
Tschüsss!!
Dateianhänge
Skins.png

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Skins für Programm?

Beitrag von Euklid »

Sieht gut aus!

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Skins für Programm?

Beitrag von pluto »

Also Nils macht sein Projekt noch weiter. So viel wie ich weiß. Ist auch schon recht weit.

Ich arbeite auch an so einem Projekt mit Hilfe meiner 2D Engine versuche ich eine eigene GUI aufzubauen. Habe jetzt über 20 einzelne Komponenten erstellt. Ich habe im Moment noch kleine Probleme beim Scrollen. Davon abgesehen läuft die GUI schon recht gut. Auch wenn das Ziel lange nicht erreicht wurde. Z.B. halt Das Desing per Datei zu ändern. Aber das dürfte meiner Meinung nach nicht so aufwendig sein.
Im Anhang seht ihr die Komponenten die es berietst gibt.

Ich arbeite mit OpBitmap und direkt mit TBitmap. Einige der Probleme habe ich bereist gelöst. Aber einige leider noch nicht.

Zum BILD: nicht erchecken: ich spiele gerne mit Farben *G*. Sobald es eine erste Pre-Alpha Version gibt, werde ich ein System Skin erstellen.
Dateianhänge
30.10.08.jpg
MFG
Michael Springwald

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Re: Skins für Programm?

Beitrag von EugenE »

Wäre es in augenfreundlicheren Farben könnte man auch etwas bewerten^^ aber diesen Augenkrebs tu ich mir noch nicht mal an^^, also nächstes Screenshot die Farben einheitlich halten^^

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Skins für Programm?

Beitrag von pluto »

Du bist nicht der einzeigst der so reagiert. Im Moment gibt es leider noch kein Skin System. Daher ist die Umstellung nicht so einfach...

Ich wollte auch zeigen, was alles einstellbar sind. Ich finde diese Farben toll. Was stört dich genau daran ? Die Farb Wahl oder ehr die Vielfalt an Farben ? Ich könnte beim nächsten mal versuchen, die Farb wahl etwas dunkler zu gestalten.
evlt. z.b. alles schwarz und die schrift dann schön Grün. Je nach Komponente.... Aber mal sehen.

Sobald es ein Skin System gibt, werde ich entsprechende Skin Vorlagen erstellen. Ich wollte auch letztendlich nur zeigen wie weit ich inzwischen bin und was alles geht. Ich hatte auch mal ein Video erstellt von der GUI... Es gibt aber leider noch einige Fehler und Probleme...
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Skins für Programm?

Beitrag von Christian »

Schaut einfach aus wie gewollt und nicht gekonnt. Augenkrebs beschreibts schon perfekt. Da ist einfach nix schönes dran man kanns nicht auf einzelne Eigenschaften eindämmen. Sorry.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Skins für Programm?

Beitrag von pluto »

Ich finde ist Ansichtssache. ich finde die GUI schön Bunt. Aber ich glaube ich werde das BILd wohl besser wieder löschen. Wenn alle der gleichen Meinung sind, hat es ja überhaupt keinen sin über die GUI ernsthaft zu diskutieren. wenn ihr euch "nur" auf das BILD bezieht. Das BILD ist eine sache. Die einzelnen Komponenten eine andere. Die Farben können ja eingestellt werden. Ist im Prinzip überhaupt kein Problem. Ist im Moment halt nur Zeitaufwendig.

Schade das ihr euch bisher nur auf die Farben geachtet habt. und nicht auf die einzelnen Komponente. Wirklich schade ! Aber das war mir von Anfang an klar. Das ihr euch darauf festlegt. Ich verstehe es einfach nicht. Die GUI hat noch mehr zu bieten außer das "aussehen". :!:
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Skins für Programm?

Beitrag von Christian »

Pluto, wenn man auf die Komponenten achtet wo noch nicht mal eine einzige Textposition stimmt wird einem noch schlechter. Das ganze einnert mich arg an Dos zeiten wenn ich das Feeling will nehm ich aber lieber Turbovision.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

ulhau
Beiträge: 65
Registriert: Sa 27. Okt 2007, 13:27
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Seebergen

Re: Skins für Programm?

Beitrag von ulhau »

Moin Moin!

Also mit Delphi habe ich bisweilen mal das OpenSource SXSkinsystem von Alexey Sadovnikov benuzt. SXSkin

Aber die schier endlose Vielfalt der nötigen Routienen hat mich so dermaßen erschreckt :shock: , daß ich nicht im enferntesten daran gedacht habe mal selbst sowas zu machen. :? Das beste am SXSkinsystem war ja der Skinkonverter. Damit ist es möglich freie XPSkins zu übernehmen und somit musste die Grafikarbeit nicht auch noch gemacht werden.

Also wer sich sowas funktionsfähig zu machen traut.... 8)

Alle Achtung!

Benutzeravatar
theo
Beiträge: 10856
Registriert: Mo 11. Sep 2006, 19:01

Re: Skins für Programm?

Beitrag von theo »

Banausen!
Seht ihr das nicht? Hier geht's nicht ums programmieren.
Plutos Screenshots sind moderne Kunst!
Die laut schreienden Farbkombinationen und doch kaum erkennbaren Farbkontraste sind ein Sinnbild für das Gefühl der Verlorenheit des Individuums in einer globalisierten Welt.
Besonders gelungen finde ich dieses Werk:
http://www.pluto.lazarusforum.de/dokuwi ... .08_02.jpg" onclick="window.open(this.href);return false;

@Pluto: zukünftig besser gleich hier posten: http://www.moma.org/" onclick="window.open(this.href);return false; statt die Perlen vor die Säue zu werfen.

;-)

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Skins für Programm?

Beitrag von pluto »

Aber die schier endlose Vielfalt der nötigen Routienen hat mich so dermaßen erschreckt
Es ist nicht ohne, da hast du recht. Man muss sich um vieles selbst kümmern. Ich finde nur, es hat einen gewissen reiz auf mich. Damit zu beschäftigen. Wenn ein die Probleme und Schwierigkeiten bewusst sind ist es nur noch halb zu viel arbeit.

Geh mal auf diese Seite hier:
http://www.delphigl.com/forum/viewtopic ... hlight=gui" onclick="window.open(this.href);return false;
dort wurden Punkte gesammelt. Allerdings ist die seite recht Lang *G* Ich wollte die auch schon mal ausdrucken, aber nicht jede seite einzeln.
Bis jetzt haben die dort noch keine Druck Funktion. Leider.

Wir könnten doch mal gemeinsam eine 1A GUI erstellen. Damit meine ich alle die sich mit diesem Thema befassen wollen.
Dazu habe ich gestern schon hier ein Thread aufgemacht: http://www.lazarusforum.de/viewtopic.php?f=10&t=2235" onclick="window.open(this.href);return false;
Wenn genügend Leute mitmachen, könnte ich mir sogar vorstellen, dass das Projekt auch was wird.
Wir müssen natürlich erstmal Ideen Sammeln und ein Plan ausarbeiten. Das ist mein erstes Ziel. Dann Können wir die Punkte der reihe nach abarbeiten.

Allerdings, fählt mir noch eine andere Möglichkeit ein, auf das aussehen der Komponenten Einfluss zu nehmen. Unter Delphi ging das:
Schaltes den Rand der jeweilige Komponenten einfach aus, legst z.b. ein Panel drunter bzw. eine TShape Komponente. Schon hast du den Effekt das du den Rand Style ändern kannst. Allerdings gibt es dann noch gewisse Probleme mit der Transparenz. Wenn das nicht so wichtig ist... müsste diese Lösung bei einigen Komponenten klappen. Bei einigen Komponenten hast du auch zugrieff auf ein Canvas.

Wenn die den BUG inzwischen schon behoben haben, könntest du auch gewisse Einstellungen in der wm_paint nachricht einstellen. Bei meinen letzten Tests ging das noch nicht, weil die Handler nicht gesetzt wurden. Ich denke auch, auf der API ebene müsste man auch noch sehr viel Einfluss auf die Komponenten nehmen können. Unter Windows ging das früher aufjedenfall. Ob das auch unter Linux geht, weiß ich nicht, Aber ich könnte es mir vorstellen.

Das Thema GUI, ist recht Spanend und Interessant. Allerdings ist es auch recht Komplex und Zeitaufwendig.
Wenn der Weg aber klar ist, ist es (fast) kein Problem mehr. Eine GUI muss ja auch gar nicht ganz so viele Komponenten haben und die Komponenten müssen ja auch wider rum nicht ganz so viele Funktionen und Eigenschaften haben. Dann wird es wider einfach. Z.B.

Leite dir eine neue Komponente von TCustomControl ab.
Am besten solltest du dann mit einer Bases Klasse arbeiten. Alle deine eigenen Komponenten könnten dann von dieser Klasse abgeleitet werden. Dann fängst du mit der ersten Komponente an. Z.B. ein Label. Das Label könnte die neue Möglichkeit mitbringen, einen einfachen BB-Code Text zu Parsen und da zu stellen. ist im Prinzip kein Problem.
Außerdem könnte das Label gewisse Transparent Style haben. Z.B. Durchsichtig zur Parent Komponente. oder zum Desktop
Das Label leitest du von dieser Bases Klasse ab.

Dann könntest du ein Button auf die gleiche art und weise erstellen. Denn Button leitest du dann vom Label ab.

Das gleiche machst du mit den anderen Komponenten auch. Dir muss halt nur klar sein, was du möchtest, und welche Komponenten DIR am wichtigsten sind. Sonst wird das ganze nix und setzte die Ziele am Anfang nicht ganz so hoch. Allerdings sollte das Projekt ausbau fähig sein.

Wie du siehst, es gibt auch einfache Wege die zum Ziel führen.

Probleme die ich bei meiner GUI habe ist im Prinzip eigentlich nur das Scroll Problem. und evlt. die Tatsache das die Fenster Manger unter Linux die Button auf der Titelleiste immer anders behandeln. Bei einigen Fenster Manger kann man das Fenster Minimieren wenn die Titelleiste versteckt ist und durch eine eigene ersetzt wurde, bei anderen wiederum nicht.

Allerdings gibt es bei einer GUI viele stolper fallen auf die man achten sollte. Beispiel:
Ich erstelle die Komponenten einer bestimmten Reihenfolge. Jetzt klicke ich mit der Maus auf eine Komponente drauf. Darunter liegt aber
wieder eine Komponente z.b. bei einem MainMenu ist das der Fall, dann könnte unter gewisse Umstände diese Komponente die darunter liegt ausgewählt werden. Da muss man dann schon in die "Trickkiste" greifen um das Problem zu lösen.

Ein anders Problem ist bei den "Aufklappbaren" Komponenten:
Wenn die Komponenten zuweit unten Platziert wurde könnten diese nicht angezeigt werden bzw. nur Teilweise. Weil die ja zum Haupt Fenster gehören. Im Prinzip müsste man entweder für jede Komponente ein eigenes Lazarus Fenster erzeugen. ich glaube fast das wird sogar unter Linux und Windows auch gemacht, oder man fügt eine neue Klasse hinzu die ein neues Fenster erstellt und leitet diese Komponenten einfach von dort ab.

Meiner Meinung nach ist es am wichtigsten das die OOP Struktur stimmt. Die muss einfach und leicht Erweiterbar sein.

Danke Theo für deine Interpretation von meinen Bildern *G*. Du bist der Erste dem das auffählt *G*. Auch wenn das nicht beabsichtigt ist.

Evlt. werden in Zukunft ja alle Betriebssystem Themen so aussehen wie in meiner GUI *G*

Edit1: Dabei gebe ich mir soviel mühe bei der Farb Gestaltung....
MFG
Michael Springwald

KOBOLD Messring GmbH
Beiträge: 155
Registriert: Mi 22. Aug 2007, 14:52
OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 65719 Hofheim am Taunus
Kontaktdaten:

Re: Skins für Programm?

Beitrag von KOBOLD Messring GmbH »

An einem EINFACHEN Skin-System wäre ich auch interessiert.
Bis jetzt habe ich so Sachen (siehe Anhang) immer individuell mit ungezählten TImages in länglicher Fummelarbeit gemacht.
Aber was ich in diesem Thread gelesen habe, ist das wirklich nicht einfach.
Dateianhänge
artnouveau.png
splashscreen.png
splashscreen.png (16.54 KiB) 2598 mal betrachtet

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Skins für Programm?

Beitrag von monta »

Man könnte eventuell schauen, was man mit GTK2 so skinnen kann, wenn du das eh verwenden solltest.

Aber ich glaub, bei den Beispielen versagt das größtenteils auch an den Bildern. Das geht ja über das einfache 'anders zeichnen' von Standardkomponenten heraus und der Aufwand wird wohl auch nicht viel kleiner, als manuell mit Images.
Johannes

Antworten