Einzelnen Beitrag anzeigen

Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Trennlinienfarbe/Style bei gruppierter Listview..

  Alt 28. Dez 2003, 18:36
Ich kann über LVM_SETGROUPMETRICS sogar die Farbe der Gruppencaptions bestimmen! Umso mehr verwundert es mich, dass es anscheinend keine Schnittstelle für diese Trennline gibt...

Ich habe mir jetzt mal eine Funktion gebastelt um diese Linie umzufärben:
Delphi-Quellcode:
procedure TMain.GrayLine;
var
  n, m: integer;
  Grayshade, Red, Green, Blue: Byte;
  PixelColor: Longint;
begin
  for n := 0 to ListView1.Canvas.ClipRect.Bottom - ListView1.Canvas.ClipRect.Top
    - 1 do
  begin
    if ListView1.Canvas.Pixels[0, n] <> ListView1.Color then
    begin
      for m := 0 to ListView1.Canvas.ClipRect.Right -
        ListView1.Canvas.ClipRect.Left - 1 do
      begin
        PixelColor := ColorToRGB(ListView1.Canvas.Pixels[m, n]);
        Red := PixelColor;
        Green := PixelColor shr 8;
        Blue := PixelColor shr 16;

        Grayshade := Round(0.3 * Red + 0.6 * Green + 0.1 * Blue);

        // Umwandeln in Graustufen
        ListView1.Canvas.Pixels[m, n] := RGB(Grayshade, Grayshade, Grayshade);
      end;
    end;
  end;
end;
Diese Funktion läuft eigentlich ganz gut, wenn sie onPaint und onResize eingebaut wird, allerdings aktualisiere ich den Listview ab und zu mal und dabei wird die blaue Linie trotz explizitem Aufruf der Funktion nach den Änderungen manchmal nicht übermalt, bzw. zu schnell mit der Originalgrafik überzeichnet.
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat