AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Farbe einer Spalte in ListView ändern

Ein Thema von ManuMF · begonnen am 9. Dez 2005 · letzter Beitrag vom 8. Apr 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#1

Farbe einer Spalte in ListView ändern

  Alt 9. Dez 2005, 19:24
Hallo,

(wie) ist es möglich, die farbe einer der Spalten eines ListViews zu ändern?

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Farbe einer Spalte in ListView ändern

  Alt 9. Dez 2005, 19:49
Hallo.

Dazu verwendest du das Ereignis OnCustomDrawSubItem().

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#3

Re: Farbe einer Spalte in ListView ändern

  Alt 9. Dez 2005, 20:52
Hallo,

danke erst mal für den Ansatz. Es funktioniert auch bei der 3. Spalte, bei der 1. aber nicht.

Mein Code:
Delphi-Quellcode:
  if (LatNSortMenue.Checked) then
  begin
    if (SubItem = 0) then
      Sender.Canvas.Brush.Color := RGB(221, 236, 255)
    else
      Sender.Canvas.Brush.Color := ClWhite;
  end
  else
  begin
    if (SubItem = 2) then
      Sender.Canvas.Brush.Color := RGB(221, 236, 255)
    else
      Sender.Canvas.Brush.Color := clWhite;
  end;
Was ist da falsch?

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Farbe einer Spalte in ListView ändern

  Alt 9. Dez 2005, 21:08
Du hast nicht wirklich was falsch gemacht - für die erste Spalte musst du deine Einstellung aber in OnCustomDrawItem machen.

marabu
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#5

Re: Farbe einer Spalte in ListView ändern

  Alt 10. Dez 2005, 13:58
Hallo,

danke, das hat funktioniert.
Aber (ja, ich bin anspruchsvoll ): Es werden dadurch nur die Items gefärbt. Ist das auch für die ganze Spalte möglich?

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Farbe einer Spalte in ListView ändern

  Alt 8. Apr 2007, 11:42
Hallo,

ich muss diesen Thread nochmal aufgreifen.

In meiner ersten Spalte sind nur die CheckBoxen und kein Text.
Wenn nun eine Zeile ausgewählt wird, dann wird auch die CheckBox selectiert dargestellt.
Das möchte ich aber nicht.
Deswegen dacht ich mir, ich könnte die 1. Spalte neu zeichnen.
Nur leider funktioniert das nicht so wie ich mir das vorstell.

Delphi-Quellcode:
procedure TMainForm.ListView_DateienCustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  If SubItem = 0 then
    Listview_Dateien.Brush.Color := clRed;
end;
Das geht leider nicht (clRed ist nur testweise dort).

Wie könnt ich die 1. Zeile ändern?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
SevenValues

Registriert seit: 5. Sep 2005
6 Beiträge
 
#7

Re: Farbe einer Spalte in ListView ändern

  Alt 8. Apr 2007, 13:09
Hi!
Nur selektiert dargestellt, oder haben die CB's auch den Wert TRUE?
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Farbe einer Spalte in ListView ändern

  Alt 8. Apr 2007, 13:37
sie haben auch nen zustand
also true oder false
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
SevenValues

Registriert seit: 5. Sep 2005
6 Beiträge
 
#9

Re: Farbe einer Spalte in ListView ändern

  Alt 8. Apr 2007, 14:02
Dann negiere Deinen Klick, den die ListView als Auswahl interpretiert, einfach. So musst Du nix neuzeichnen, jedenfalls nicht zwangsläufig.
ListView1.Items.Item[XYZ].Checked:=NOT ListView1.Items.Item[XYZ].Checked; An dieser Stelle stellt sich die Frage, weshalb die CheckBoxes den Zustand ändern, wenn nur ein RowSelect ausgeführt wird. Hast Du denn ein OnClick-Ereignis definiert o.ä., wo vielleicht eine Selektion durchgeführt wird??
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Farbe einer Spalte in ListView ändern

  Alt 8. Apr 2007, 14:16
Ich denke du hast mich missverstanden.

Mit der CheckBox will ich ja nichts anstellen.
Wie du im Bild siehst, ist die letzte Zeile markiert (blau hinterlegt).
Die CheckBox selbst aber auch.
eine nicht markierte CheckBox siehst du drüber.

Nun möchte ich aber, dass die CheckBox trotz markierter Zeile nicht markiert aussieht - also so wie die vorletzte Zeile.
Miniaturansicht angehängter Grafiken
listview_124.jpg  
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  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 16:00 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