AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Trennlinienfarbe/Style bei gruppierter Listview..
Thema durchsuchen
Ansicht
Themen-Optionen

Trennlinienfarbe/Style bei gruppierter Listview..

Ein Thema von FriFra · begonnen am 28. Dez 2003 · letzter Beitrag vom 28. Dez 2003
Antwort Antwort
Benutzerbild von FriFra
FriFra

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

Trennlinienfarbe/Style bei gruppierter Listview..

  Alt 28. Dez 2003, 04:19
Ist es irgendwie möglich die Farbe der Trennlinie in einer gruppierten Listview zu ändern?
http://www.frifra.de/Temp/lvg.gif
Standard ist ja wohl dieses Blau... ich will aber nur in meinem Programm eine andere Farbe verwenden.
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Trennlinienfarbe/Style bei gruppierter Listview..

  Alt 28. Dez 2003, 07:47
Bist du sicher, dass es nur Blau ist? Ich müsste es mal ausprobieren, aber ich würde vermuten, dass die Farbe auch von den Systemeinstellungen abhängt. Sonst gäbe es ja wieder das Problem, dass man die Trennlinie nicht sehen würde, wenn irgendwer ein Theme oder Farbeinstellungen hat, bei denen der Fensterhintergrund dieses Blau benutzt.

Ansonsten -ohne Gewähr!- schau mal im PSDK unter ListView_SetGroupMetrics nach. Damit lassen sich einige Farbeinstellungen vornehmen, aber ob das auch auf diese Trennlinie zutrifft, ...
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#3

Re: Trennlinienfarbe/Style bei gruppierter Listview..

  Alt 28. Dez 2003, 08:40
Zitat von MathiasSimmack:
Bist du sicher, dass es nur Blau ist? Ich müsste es mal ausprobieren, aber ich würde vermuten, dass die Farbe auch von den Systemeinstellungen abhängt.
Da habe ich doch richtig vermutet. Je nach Theme ändert sich die Farbe der Trennlinie. Ich würd´s daher so lassen wie es ist, FriFra. ´s gibt sonst nur Probleme, falls wirklich mal einer die Farbe als Hintergrund benutzt, die du für die Linie nimmst.
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

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

Re: Trennlinienfarbe/Style bei gruppierter Listview..

  Alt 28. Dez 2003, 10:59
Ich will aber nur die Farbe für meinen Listview in meinem Programm ändern... Die Hintergrund- und Textfarbe kann ich ja auch unabhängig von den Systemeinstellungen verändern, nur dann passt dann eben manchmal die Farbe der Linie nicht mehr dazu.
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
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, 17: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
Antwort Antwort


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 21:49 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