AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Hintergrundfarbe eines selektierten FMX ListViewItems ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Hintergrundfarbe eines selektierten FMX ListViewItems ändern

Ein Thema von TurboMagic · begonnen am 26. Jul 2018 · letzter Beitrag vom 2. Aug 2018
Antwort Antwort
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#1

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern

  Alt 28. Jul 2018, 09:30
Die Listview habe ich im Buch zwar nicht behandelt (kommt aber im nächsten Buch sehr ausführlich), die Lösung geht aber (u.a.) auch entsprechend so, wie im Buch im Kapitel über die Styles / FireMonkey Stil-Designer beschrieben (S. 86 Bitmap-Links):

Du legst hier entweder einen Benutzer defninierten Style an oder änderst den Standard-Style für die Listview. Im Style-Designer wählst Du "selection" aus dem "listviewstyle". Für Selection änderst Du dann im Objectinspektor den "SourceLink".

Wenn die Farben in der vorhandenen Bitmap nicht ausreichen für Deine Zwecke, kannst Du einfach ein neues Bitmap (.png-Format) hinzufügen und das als Source wählen.

Ergebnis sieht dann z.B. so aus wie in der Anlage.
Angehängte Grafiken
Dateityp: jpg ListviewItem.jpg (8,8 KB, 25x aufgerufen)

Geändert von Harry Stahl (29. Jul 2018 um 07:18 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.094 Beiträge
 
Delphi 12 Athens
 
#2

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern

  Alt 29. Jul 2018, 09:05
Danke! Habe mir das kurz angeschaut und ja, das sollte kein Problem mehr sein. Es wäre aber mal praktisch eine Übersicht zu haben welcher bereich dieser Bitmaps für welche der Standardcontrols benutzt wird. Dann könnte man gezielter anpassen...
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.094 Beiträge
 
Delphi 12 Athens
 
#3

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern

  Alt 29. Jul 2018, 09:12
Document the areas of the style PNG graphics
https://quality.embarcadero.com/browse/RSP-20963

Wer mag kann ja dafür abstimmen...
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.753 Beiträge
 
Delphi 12 Athens
 
#4

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern

  Alt 30. Jul 2018, 10:51
Das erscheint mir sehr viel Aufwand mit nur beschränktem Nutzen. Es ist ja keinesfalls gesagt, daß alle Styles das gleiche Grafik-Layout verwenden. Das gilt vermutlich besonders auch für Styles, die nicht von Embarcadero selbst kommen (z.B. https://www.delphistyles.com/).

Nun sind die gefragten Informationen ja bereits im Style selbst enthalten:
Zitat:
One can find that out manually by looking through the style definitions if one loads that style into a TStyle book
Daher würde ich hier ein kleines Programm vorziehen, daß die Bitmap(s) und die Objektstruktur synchronisiert anzeigt. Also einerseits bei Auswahl eines Objekts den zugehörigen Bereich (bzw. Mehrzahl) in der Bitmap anzeigt, andererseits auch beim Hover über der Bitmap die zugehörigen Objekte z.B. in einem Hint anzeigt. Das wäre dann immerhin auf alle Styles anwendbar.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.239 Beiträge
 
Delphi 12 Athens
 
#5

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern

  Alt 30. Jul 2018, 11:45
Ja die Styles sind sher gewöhnungsbedürftig, und man muss das Arbeiten damit erst nochmal lernen und optimieren, den da sind einige Stolpersteine versteckt.

Damit bin ich eigentlich ganz bei dem Vorschlag von Harry, denn man muss ja meistens nur eine simple, rechteckige Fläche umfärben.
Das geht notfalls auch mit zusätzlichen Rectangles oder Shapes direkt in den Styles,
das ist aber auch suboptimal.

Statt einem zusätzlichem Bitmap für nur einer Farbe lege ich mir eine Art "Farbfächer" an,
so kann ich die wichtigsten Farben "umdefinieren" (Feld-rt, Feld2-Blau, Feld2-grün, ...).
Wenn der Farbfächer immer gleich strukturiert wird, dann kann man den sogar austauschen und so die Style-Hauptfarben leicht ändern, ohne das "große" Bitmap anfassen zu müssen.

Aber Alles in Allem ist das doch sehr lästig, und es hat auch seine Grenzen

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.753 Beiträge
 
Delphi 12 Athens
 
#6

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern

  Alt 1. Aug 2018, 10:19
Ich habe da mal eine Art Proof-of-Concept zusammengeschrieben, zunächst beschränkt auf vsf-Dateien (also VCL Styles). Das Konzept lässt sich vermutlich auch mit vertretbarem Aufwand auf FMX Styles anwenden, notfalls dann halt in einer separaten FMX-Anwendung.
Angehängte Dateien
Dateityp: zip VsfViewer.zip (1.011,7 KB, 6x aufgerufen)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.239 Beiträge
 
Delphi 12 Athens
 
#7

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern

  Alt 1. Aug 2018, 16:00
Mit .styles Files von FMX im Textformat habe ich das auch schonmal getestet.
Es ist je nur ein DFM-Format, im Prinzip, und lässt sich auch ganz gut verarbeiten.

Das Problem sind aber die auf allen Platformen verschiedenen Basis-Styles, die sich sehr schlecht universalisiren lassen.
Entweder man baut sich die Styles von 0 an selber auf, oder man muss in allen Platformen
womöglich in Handarbeit die Styles optimieren.

Ich nutze im Moment die FMX-Styles aus dem Premium-Pack als Basis, und baue mir dazu was ich brauche, so ähnlich wie unten vorgeschlagen.

Andererseite benutze ich auch nur 10% aller Komponenten, so das ich auch bestimmt 90% der
Style-Daten löschen könnte.
Weil mir das im Moment noch zu risikoreich und zu viel Arbeit ist habe ich es noch nicht gemacht, aber es würde womöglich die Package-Größe erheblick reduzieren.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.561 Beiträge
 
Delphi 12 Athens
 
#8

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern

  Alt 1. Aug 2018, 22:45
Ich habe da mal eine Art Proof-of-Concept zusammengeschrieben, zunächst beschränkt auf vsf-Dateien (also VCL Styles). Das Konzept lässt sich vermutlich auch mit vertretbarem Aufwand auf FMX Styles anwenden, notfalls dann halt in einer separaten FMX-Anwendung.
Das sieht doch schon sehr schön aus. Falls Du da noch mehr Arbeit rein stecken willst, hier noch ein paar Erweiterungsvorschläge:

1. Bitte Version auch für FMX.

2. Übergabe der Style-Datei als Parameter beim Start Deines Programms.

3. Eine Filtermöglichkeit in der Objectliste

4. Bei Auswahl eines Objectes und Doppelklick: Temporäres extrahieren der aktuellen PNG-Datei und Start einer einstellbaren Bildbearbeitung, die als Parameter den Namen der PNG-Datei und den Auswahlbereich erhält. Dann könnte die Bildbearbeitung direkt das Bild laden und den Bereich auswählen (ich wäre bereit eine solche Funktionalität auch in meinem Bildbearbeitungsprogramm zu unterstützen).

5. Bei Speichern der PNG seitens der Bildbearbeitung die PNG in Deinem Bild aktualisieren oder manueller Aufruf für die Aktualisierung in Deinem Programm.
  Mit Zitat antworten Zitat
Antwort Antwort


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:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz