AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TListView, in 1. Spalte Rechteck in bestimmter Farbe
Thema durchsuchen
Ansicht
Themen-Optionen

TListView, in 1. Spalte Rechteck in bestimmter Farbe

Ein Thema von hoika · begonnen am 2. Jun 2008 · letzter Beitrag vom 3. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#1

TListView, in 1. Spalte Rechteck in bestimmter Farbe

  Alt 2. Jun 2008, 20:23
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
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TListView (Caption) 1. Spalte farbich

  Alt 2. Jun 2008, 20:27
Was meinst du mit kein Info?
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: TListView (Caption) 1. Spalte farbich

  Alt 2. Jun 2008, 20:39
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
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: TListView (Caption) 1. Spalte farbich

  Alt 2. Jun 2008, 21:59
OnAdvancedCustomDrawItem gilt für ein Item und seine SubItems.
Soll, das für diese nicht gelten, sorg in AdvancedCustomDrawSubItem dafür
Markus Kinzler
  Mit Zitat antworten Zitat
IceTube
(Gast)

n/a Beiträge
 
#5

Re: TListView (Caption) 1. Spalte farbich

  Alt 2. Jun 2008, 22:01
Würd so gehen denke ich

Delphi-Quellcode:

procedure 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;
lg
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: TListView (Caption) 1. Spalte farbich

  Alt 2. Jun 2008, 22:06
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
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: TListView (Caption) 1. Spalte farbich

  Alt 2. Jun 2008, 22:10
So meinte ich das ja auch
Markus Kinzler
  Mit Zitat antworten Zitat
IceTube
(Gast)

n/a Beiträge
 
#8

Re: TListView (Caption) 1. Spalte farbich

  Alt 2. Jun 2008, 22:11


Also..schau mal

Zitat von hoika:
...will ich die erste Spalte eines ListViews farbich darstellen.
dann...

Zitat von hoika:
..ich will SubItem 0, also die 1. Spalte farbich machen
und jetzt...

Zitat von hoika:
Ich will in der 1. Spalte ein farbiges Rechteck malen..
Zitat von hoika:
dein Code malt die komplette Zeile in der Farbe.
1. Ich heiße IceTube(nicht IceCube)
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!


:/
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: TListView (Caption) 1. Spalte farbich

  Alt 2. Jun 2008, 22:19
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
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: TListView, in 1. Spalte Rechteck in bestimmter Farbe

  Alt 2. Jun 2008, 22:36
Delphi-Quellcode:
     rect := Item.DisplayRect(drBounds);
     Sender.Canvas.Brush.Color := clBlue;
     Sender.Canvas.DrawFocusRect( Rect);
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:43 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