AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Listview ganze Spalte färben

Ein Thema von Amenovis · begonnen am 19. Nov 2018 · letzter Beitrag vom 21. Nov 2018
Antwort Antwort
Seite 2 von 2     12
Amenovis

Registriert seit: 17. Nov 2011
52 Beiträge
 
#11

AW: Listview ganze Spalte färben

  Alt 21. Nov 2018, 22:45
ok dann bin ich ja doch gar nicht so weit weg von deinem

Du machst es mit der prozedur und dem array
die eigene Prozedur wollte er schon nicht ich dachte ich hätte sie nicht initalisiert
Beispiel.. Geh ich auf listview events und mach einen doppelklick fügt er oben die Prozedur automatisch ein und unten zwischen begin und end sag ich ihm was ich will (EDIT: Ahh Vegiss das ich bin doch zu doof ich hab zwar die Prozedur zwischen public eingefügt aber die Zeile drüber hatte ich voll vergessen... das viel mir jetzt auf wo ich das beispiel schrieb urgssss)

Delphi-Quellcode:
{Event1 das meinte ich mit Block1}
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if Item.SubItems[0] then Color:=clred;{<<..Die Zeile so Korrekt?}
end;

{Event2 das meinte ich mit Block2}
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
if Item.SubItems[1] then Color:=clgreen else
if Item.SubItems[2] then Color:=clyellow else
if Item.SubItems[3] then Color:=clgray else
end;

Geändert von Amenovis (21. Nov 2018 um 22:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Listview ganze Spalte färben

  Alt 21. Nov 2018, 23:05
Okay, einfach nur meinen Event Code kopieren ohne Events zuzuweisen das klappt dann wohl nicht.

Nimm einfach mein Beispiel aus dem Anhang als Vorlage.

Ps: Das einzige was Du zu machen hast ist in der Zeile wo ich Spalte 1 Spalte 2 usw geschrieben habe
-> passe dort deine Wunschfarbe an und wenn Du mehr möchtest musst Du das Array [0..2] erweitern.
Angehängte Dateien
Dateityp: 7z LVColor.7z (136,3 KB, 4x aufgerufen)
Gruß vom KodeZwerg

Geändert von KodeZwerg (21. Nov 2018 um 23:10 Uhr)
  Mit Zitat antworten Zitat
Amenovis

Registriert seit: 17. Nov 2011
52 Beiträge
 
#13

AW: Listview ganze Spalte färben

  Alt 21. Nov 2018, 23:10
Ok das mach ich später zu hause bin noch auf der Arbeit
hab hier nichts zum öffnen das ist auf dem anderen pc

aber bitte eine letzte Frage was muss den bei der ersten Spalte anstatt item.subitems[] drin stehen ?


Delphi-Quellcode:
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if Item.SubItems[0] then Color:=clred;{<<..so ist das sicher Falsch weil die erste spalte ja caption nicht supitem ist} 
end;
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Listview ganze Spalte färben

  Alt 21. Nov 2018, 23:18
aber bitte eine letzte Frage was muss den bei der ersten Spalte anstatt item.subitems[] drin stehen
Das hier:
Delphi-Quellcode:
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if Item <> Nil then
    Sender.Canvas.Brush.Color := clRed;
end;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Amenovis

Registriert seit: 17. Nov 2011
52 Beiträge
 
#15

AW: Listview ganze Spalte färben

  Alt 21. Nov 2018, 23:29
OK dann nochmal vielen vielen Dank für deine Zeit UND deine Geduld!

Mhh ich finde beide Wege schön, je nachdem was man braucht

Nur Spalte 1 mein Weg nur subitems deinen oder meinen Weg bei Spalte 1 und 2+x ... 100% deinen Weg ist übersichtlicher

lg

Timo

Edit: Deinen werd ich sicher auch verwenden die Zeit war nicht umsonst
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Listview ganze Spalte färben

  Alt 21. Nov 2018, 23:41
Gern geschehen, ob Du jetzt meine Variante verwendest oder irgendwie anders ans Ziel kommst, das ist ja das schöne an Pascal das es einem mehr oder minder frei steht wie es denn tatsächlich abzulaufen hat.
Aber der Vcl was machen zu lassen wofür sie nicht gedacht ist kann auch nach hinten losgehen.

Ob Du nun ein Event oder zwei aufrufst, ob mit oder ohne eigener Methode, die .exe Dateigröße sowie die Geschwindigkeit werden nicht darunter leiden.
Wenn Du später mal mehr Spalten haben willst brauchst Du bei Verwendung meines Source nur an einer Sache fummeln, der eigenen Methode.

Wie ich es machen würde kann man ja dem Archiv entnehmen, ggf den Namespace aktualisieren, das ist mit Delphi 5 rasch dahin hingekritzelt worden.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:42 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