Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Hintergrundfarbe eines selektierten FMX ListViewItems ändern (https://www.delphipraxis.net/197285-hintergrundfarbe-eines-selektierten-fmx-listviewitems-aendern.html)

TurboMagic 26. Jul 2018 15:40

Hintergrundfarbe eines selektierten FMX ListViewItems ändern
 
Hallo,

wie kann ich am einfachsten die Hintergrundfarbe es selektierten ListViewItems eies FMX List Views ändern? Ich habe dafür bisher noch keinen passenden Stil gefunden. Falls es etwas ausmacht: es wäre für Android.

Grüße

TurboMagic

KodeZwerg 26. Jul 2018 16:58

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern
 
Zitat:

You have to use a style. So add a stylebook en either use one of the
styles that come with Delphi or right click the listview "edit custom
style"to make the style. dubbleclick on the stylebook to open the style
and modify the listviewstyle.
Hopes that helps
Me hope das auch :-)

auch was mit Code auf SO entdeckt in Form einer Bitmap:
Zitat:

My suggestion is to add TListItemImage to listview, use it as a marker or set its bounds to cover whole item and use it as a backgraund. Then when you click on item, change the image assigned to the listitemimage object of the selected item.
for example:
Delphi-Quellcode:
procedure TForm1.lvListasItemClickEx(const Sender: TObject; ItemIndex: Integer;
  const LocalClickPos: TPointF; const ItemObject: TListItemDrawable);
begin
TListItemImage(TListViewItem(lvListasItem.Selected).Objects.FindDrawable('Image1')).Bitmap := Image1.MultiResBitmap.Items[1].Bitmap;
end;

TurboMagic 26. Jul 2018 17:23

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern
 
Hallo,

wenn, dann hilft glaube ich nur dein 2. Ansatz.
Den ersten habe ich schon versucht und im ListView Stil des Stylebook nichts gefunden, was auf einen selektieren Eintrag hinweist.

Manche Dinge in FMX gehen eionfach, andere scheinen überkompliziert zu sein.

Grüße

TurboMagic

KodeZwerg 26. Jul 2018 17:33

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern
 
Da schau an, für mich klang das erstere nach genau dem gesuchten, ich muss dringend mal wieder was FMX taugliches raufpacken damit ich im Vorfeld testen kann was ich copy/paste.

Ps: Vielleicht steht sowas auch in Harry seinFMX Buch. *ungewiss*

Harry Stahl 28. Jul 2018 09:30

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
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.

TurboMagic 29. Jul 2018 09:05

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern
 
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...

TurboMagic 29. Jul 2018 09:12

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern
 
Document the areas of the style PNG graphics
https://quality.embarcadero.com/browse/RSP-20963

Wer mag kann ja dafür abstimmen...

Uwe Raabe 30. Jul 2018 10:51

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern
 
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.

Rollo62 30. Jul 2018 11:45

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern
 
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 :stupid:

Rollo

Uwe Raabe 1. Aug 2018 10:19

AW: Hintergrundfarbe eines selektierten FMX ListViewItems ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz