Thema: Delphi RGB-Farben ändern ?

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#10

Re: RGB-Farben ändern ?

  Alt 25. Nov 2003, 02:34
Mit ColorToRGB sollten natürlich vorher die Farbwerte der Farbpalette in RGB umgewandelt werden
clBtnFace ist zum beispiel kein RGB Wert, sondern verweißt auf einen Farbwert in der Systempalette.

Delphi-Quellcode:
Unit Unit1;

Interface
  Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

  Type TForm1 = Class(TForm)
    Button1: TButton;
    Button2: TButton;
    Procedure Button1Click(Sender: TObject);
    Procedure Button2Click(Sender: TObject);
  End;

  Var Form1: TForm1;

Implementation
  {$R *.dfm}

  Procedure TForm1.Button1Click(Sender: TObject);
    Var R, G, B: Byte;
      Farbe: TColor;
      HD: ShortInt; { -100..0 = dunkler / 0..100 = heller  }

    Begin
      HD := -10;
      Farbe := ColorToRGB(Color);
      R := (Farbe and $000000FF);
      G := (Farbe and $0000FF00) shr 8;
      B := (Farbe and $00FF0000) shr 16;
      R := R + (R * HD div 100);
      G := G + (G * HD div 100);
      B := B + (B * HD div 100);
      Color := RGB(R, G, B);
    End;

  Procedure TForm1.Button2Click(Sender: TObject);
    Var R, G, B: Byte;
      Farbe: TColor;
      HD: ShortInt; { -100..0 = dunkler / 0..100 = heller  }

    Begin
      HD := 10;
      Farbe := ColorToRGB(Color);
      R := (Farbe and $000000FF);
      G := (Farbe and $0000FF00) shr 8;
      B := (Farbe and $00FF0000) shr 16;
      R := R + ((255 - R) * HD div 100);
      G := G + ((255 - G) * HD div 100);
      B := B + ((255 - B) * HD div 100);
      Color := RGB(R, G, B);
    End;

End.
HD gibt die starke der Änderung an.



http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat