![]() |
FMX TListBox AlternatingRowBackground nicht gesamte Breite des Items
Ich habe eine TListBox (Firemonkey), mit einer Item breite grösser als der Client Bereich, somit muss ich horizontal scrollen um alles zu sehen. So soll es auch sein.
Nun setze ich AlternatingRowBackground auf true, und nur der Client Bereich der Listbox reagiert darauf. Wenn ich horizontal scrolle, ist der reinscrollende Hintergrund jedoch wieder nur Weiß. Wie bekomme ich es hin, dass das gesamte Item die Hintergrundfarbe annimmt? |
AW: FMX TListBox AlternatingRowBackground nicht gesamte Breite des Items
Liste der Anhänge anzeigen (Anzahl: 1)
Ich würde das mal als Bug bezeichnen, denn es wird immer nur die Breite der Listbox für die alternierenden Items der Hintergrund gezeichnet. Habe auf die Schnelle auch keinen einfachen Workaround gesehen.
Alternativ könntest Du aber das alternating abschalten und es selber im onPainting-Event nachstellen. Dazu muss aber jedem TListBoxItem zuvor das eigene Onpainting event zugewiesen werden. Dann könnte das im Event so aussehen:
Delphi-Quellcode:
Vom Ergebnis her sähe es dann aus wie in der Anlage.
procedure TForm25.FormCreate(Sender: TObject);
begin for var x := 0 to Listbox1.Items.Count -1 do begin Listbox1.ListItems[x].OnPainting := ListBoxItem4Painting; end; end; procedure TForm25.ListBoxItem4Painting(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); begin if odd ( TListboxItem (sender).Index ) then begin canvas.Fill.Color := TAlphaColorRec.gray; canvas.FillRect(Arect, 0.2) end; end; Wäre nett, wenn Du das beim Quality Central als Bug meldest. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:03 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 by Thomas Breitkreuz