![]() |
ListView - Column-Header einfärben?
Wie kann ich die Farbe der Spaltentitel in einer ListView ändern? Standard ist ja immer clBtnFace... ich würde das ganze jedoch lieber komplett selber zeichnen (inkl Border)...
|
Re: ListView - Column-Header einfärben?
* Umleitung bau*
![]() |
Re: ListView - Column-Header einfärben?
Hm... daer Code gefällt mir nicht so gut, da ma dafür zuvier "basteln" muss...
Vielleicht geht das ja auch irgendwie direkter mit Messages?
Delphi-Quellcode:
const
LVM_GETHEADER = LVM_FIRST + 31; var hHeader: THandle; begin {handle vom header} hHeader := SendMessage(ListView1.Handle, LVM_GETHEADER, 0, 0); SendMessage(hHeader, ??? , ColorToRGB(clRed), 1); //<- Vielleicht hat noch jemand eine Idee... |
Re: ListView - Column-Header einfärben?
|
Re: ListView - Column-Header einfärben?
Liste der Anhänge anzeigen (Anzahl: 1)
Naja, das Ergebnis ist auch nicht 100% brauchbar...
Der Bereich des Headers, wo sich keine definierte Column befindet wird nicht eigefärbt (s. Anhang) |
Re: ListView - Column-Header einfärben?
also bei mir wird auch dieser teil eingefärbt.
wahrscheinlich liegt es daran, dass ich den code noch ein bisschen abgeändert habe. ich habe ihn mal aus dem source meines programmes rauskopiert:
Delphi-Quellcode:
procedure TForm1.HeaderWndProc1(var Message: TMessage);
Var XCanvas: TCanvas; XDC: HDC; ARect: TRect; i:integer; Spaltenanfang:integer; begin if Assigned(FOldWndProc1) then Message.Result := CallWindowProc(FOldWndProc1, FHeader1, Message.Msg, Message.WParam, Message.LParam); case Message.Msg of WM_PAINT: begin XCanvas := TCanvas.Create; XDC := GetWindowDC(FHeader1); try XCanvas.Handle := XDC; Spaltenanfang:=0; Windows.GetClientRect(FHeader1, ARect); Arect.left:=Spaltenanfang; Arect.right:=Spaltenanfang+listview1.width; InflateRect(arect,-1,-1); //Hintergrund XCanvas.Brush.Color:=listviewheaderscolor; xcanvas.FillRect(arect); Frame3d(XCanvas, ARect, clBtnHighlight,clBtnShadow,1); for i:=0 to listview1.Columns.Count-1 do begin //rect der aktuellen Spalte ermitteln Windows.GetClientRect(FHeader1, ARect); Arect.left:=Spaltenanfang; Arect.right:=Spaltenanfang+listview1.Column[i].Width; inc(Spaltenanfang,listview1.Column[i].Width); InflateRect(arect,-1,-1); //Hintergrund XCanvas.Brush.Color:=listviewheaderscolor; xcanvas.FillRect(arect); Frame3d(XCanvas, ARect, clBtnHighlight,clBtnShadow,1); //Text ausgeben drawtext(Xcanvas.Handle,pchar(listview1.Column[i].caption), length(listview1.Column[i].caption),arect,dt_left); end; finally ReleaseDC(FHeader1, XDC); XCanvas.Free; end; end; end; end; |
Re: ListView - Column-Header einfärben?
Liste der Anhänge anzeigen (Anzahl: 1)
Ist schon besser ;) ... ABER jetzt wirde der Bevel falsch gezeichnet (s. Anhang)
|
Re: ListView - Column-Header einfärben?
ja klar, aber das ist ja nur der letzte bevel...
mir macht das nichts aus. wenns dir nicht passt, kannst du es ja versuchen zu ändern. |
Re: ListView - Column-Header einfärben?
@FriFra: würdest du bitte die Screenshots anhängen? In zwei Wochen sind die von deinem Server verschwunden und niemand kan mehr mit deinem Posting was anfangen.
|
Re: ListView - Column-Header einfärben?
Ok, mach ich... ABER bisher hab ich noch nie irgendwelche Bilder aus dem bettr. Ordener auf meinem Server gelöscht. Warum auch?
|
Re: ListView - Column-Header einfärben?
Irgendwann wirst du den bestimmt mal ausmisten. Aber darüber will ich jetzt nicht weiter diskutieren. Es ist nur so, dass andere ihn wohl regelmäßig löschen und damit keiner sagt: "Der macht das aber auch." bitte generell Screenshots anhängen.
|
Re: ListView - Column-Header einfärben?
Ich finde es aber eben schlecht, dass man das Bild SO nicht direkt sieht...
|
Re: ListView - Column-Header einfärben?
Und manch ein Modembenutzer ist froh drum. Aber darüber will ich hier und jetzt nicht diskutieren, da es nicht hier her gehört.
|
Re: ListView - Column-Header einfärben?
statt
Zitat:
Delphi-Quellcode:
und die Überschrift erhält im Hintergrund auch das "richtige" 3D-aussehen.
uses graphutil
Frame3d(XCanvas, ARect, gethighlightcolor(listviewheaderscolor),gethighlightcolor(listviewheaderscolor),1); Mfg Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:51 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