Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Farbe "smooth" ändern (https://www.delphipraxis.net/103148-farbe-smooth-aendern.html)

moelski 11. Nov 2007 12:21


Farbe "smooth" ändern
 
Moin !

Sorry für den vielleicht etwas blöden Titel, aber mir fällt kein besserer ein :-)

Also folgendes Problem ... Wir haben da ein paar Kurven in einem TChart die wir ein und ausschalten können. Beim Einschalten der Kurve soll der Farbwert der Kurve für ein paar MilliSekunden angehoben werden und dann wieder retour. Damit kann man besser erkennen welche Kurve man nun ausgewählt hat.

Die aktuelle Farbe ist bekannt. Aber wie kann ich jetzt die Farbe mit einer zur Farbe passenden Farbänderung versehen? Also wie kann ich z.B. die Sättigung oder Helligkeit anpassen? Und vor allem müsste das bei allen Farben funktionieren also auch bei Schwarz z.B.

Also Ziel sollte sowas in der Art sein:
Rot - etwas dunkleres Rot, noch dunkler, wieder eins zurück und dann wieder das normale Rot. So in etwa.

Ich habe nur keine Idee wie ich sowas umsetzen könnte. :gruebel:

Jemand ne Idee?

marabu 11. Nov 2007 12:32

Re: Farbe "smooth" ändern
 
Hallo Dominik,

wenn du keinen kompletten Farblauf (damit es mit jeder Farbe funktioniert) mit Stützpunkten (damit es schneller geht) implementieren willst, wäre vielleicht ein zeitlich begrenztes Anheben der Linienstärke ein möglicher Ansatz.

Grüße vom marabu

moelski 11. Nov 2007 12:36

Re: Farbe "smooth" ändern
 
Moin !

Die Linienstärke hammer eh schon dabei.
Wäre nur cool wenn auch die Farbe etwas angehoben werden könnte.

marabu 11. Nov 2007 13:21

Re: Farbe "smooth" ändern
 
Einen Farblauf kannst du so realisieren:

Delphi-Quellcode:
type
  Int3 = 0..7;

function NextColor(color: TColor; step: Int3): TColor;
var
  quad: TRGBQuad absolute color;
begin
  with quad do
  begin
    rgbBlue := rgbBlue + 1 shl step;
    rgbGreen := rgbGreen + 1 shl step;
    rgbRed := rgbRed + 1 shl step;
  end;
  Result := color;
end;
Oder du wechselst einfach mehrmals in Folge zwischen der Farbe und ihrer Komplementärfarbe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 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