![]() |
TListView, in 1. Spalte Rechteck in bestimmter Farbe
Hallo,
wie der Titel schon sagt, will ich die erste Spalte eines ListViews farbich darstellen. OnAdvancedCustomDrawItem: keine Info AdvancedCustomDrawSubItem: nur SubItems Wie geh ich vor ? Danke Heiko |
Re: TListView (Caption) 1. Spalte farbich
Was meinst du mit kein Info?
|
Re: TListView (Caption) 1. Spalte farbich
Hallo,
ich will SubItem 0, also die 1. Spalte farbich machen, keine Info = keine Ahnung, was gerade gemalt wird. Bei AdvancedCustomDrawSubItem wird das SubItem übergeben, aber leider erst ab 1 (also das 1. SubItem). Heiko |
Re: TListView (Caption) 1. Spalte farbich
OnAdvancedCustomDrawItem gilt für ein Item und seine SubItems.
Soll, das für diese nicht gelten, sorg in AdvancedCustomDrawSubItem dafür |
Re: TListView (Caption) 1. Spalte farbich
Würd so gehen denke ich
Delphi-Quellcode:
lgprocedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); begin //Farbige Zeilen (Sender As TListView).Canvas.Brush.Color := clSilver; (Sender As TListView).Canvas.Font.Color := clBlack; end; procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); begin //SubItem Color (Sender As TListView).Canvas.Brush.Color := clWhite; |
Re: TListView (Caption) 1. Spalte farbich
allo,
mklinzler < OnAdvancedCustomDrawItem gilt für ein Item und seine SubItems. > < Soll, das für diese nicht gelten, sorg in AdvancedCustomDrawSubItem dafür > Ich will aber nicht in den SubItems malen, sondern in der Caption (1. Spalte) Ich bin schin drauf und dran, ein Dummy-Caption (Width=0) zu nehmen, um dann das SubItem=1 als sichtbare 1. Spalte zu nehmen. < IceCube > Ich will in der 1. Spalte ein farbiges Rechteck malen, dein Code malt die komplette Zeile in der Farbe. So mache ich es gerade als Notlösung. Heiko |
Re: TListView (Caption) 1. Spalte farbich
So meinte ich das ja auch
|
Re: TListView (Caption) 1. Spalte farbich
:shock:
Also..schau mal Zitat:
Zitat:
Zitat:
Zitat:
2. Weißt du anscheind nicht was du willst wie ich dir es oben gezeigt habe 3. Stell die richtige Frage 4. Was solln die Klammern??? 5. Titel passt dann nicht!!! Edit: Wenn du ein "Rechteck" in der Zeile haben willst dann schau dir Canvas an, oder du erzeugst ein "TShape" und berechnest die Größe,Breite,etc. und fügst das in die 1. Spalte der Listview ein! :/ |
Re: TListView (Caption) 1. Spalte farbich
Hallo IceTube (jaja ;))
Der Titel sagt, ich will die 1. Spalte farbich. Sämtliche OnDrawItem Methoden geben entweder nur das Item zurück, dann kann ich nur die Zeile komplett malen, oder im Falle von AdvancedCustomDrawSubItem erlauben es nur, die SubItems zu malen. Das Caption (1. Spalte) wird in AdvancedCustomDrawSubItem gar nicht aufgerufen, klar heisst ja auch SubItem. Ich werden das jetzt mal mit dem Dummy-Caption probieren, die 1. sichtbare Spalte ist dann also das 1. SubItem. Es sieht so aus, als ob Caption (1. Spalte des ListView) was besonderes ist. In einem StringGrid läßt sich das viel einfacher machen (habe ich auch schon gemacht), nur das ListView ist bockig. Bitte kein Spruch VST benutzen, will ich später auch, aber die Umstellung ist so gross, dass ich erst mal ne Cover-Klasse dafür basteln muss, um nicht den ganzen Code umstellen zu müssen. Ok ein Edit ;) OK, Camvas ist ja da. Wie bekomme ich denn das Rechteck raus ? Width ist z.B. 20. Heiko |
Re: TListView, in 1. Spalte Rechteck in bestimmter Farbe
Delphi-Quellcode:
rect := Item.DisplayRect(drBounds);
Sender.Canvas.Brush.Color := clBlue; Sender.Canvas.DrawFocusRect( Rect); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 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