Delphi-PRAXiS

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/)
-   -   FMX TListBox AlternatingRowBackground nicht gesamte Breite des Items (https://www.delphipraxis.net/211613-fmx-tlistbox-alternatingrowbackground-nicht-gesamte-breite-des-items.html)

softtouch 12. Okt 2022 15:37

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?

Harry Stahl 12. Okt 2022 21:33

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:
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;
Vom Ergebnis her sähe es dann aus wie in der Anlage.

Wäre nett, wenn Du das beim Quality Central als Bug meldest.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr.

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