Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: Farben transparent nutzen

  Alt 22. Jun 2011, 11:16
Ein Beispiel mit nichts als einem Button auf der Form:
Delphi-Quellcode:
type
  TFormTest = class(TForm)
    Button1: TButton;
    procedure FormPaint(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    FSteps: integer;
  end;

...

procedure TFormTest.FormPaint(Sender: TObject);
const
  IncPerStep = 10;
var
  RBig, RSmall: TRect;
  R, G, B: byte;
  InitialColor: TColor;
begin
  RBig := Rect(0, 0, ClientWidth, ClientHeight);
  RSmall := Rect(50, 50, 100, 100);
  InitialColor := $00404040; //dunkelgrau
  Canvas.Brush.Color := InitialColor;
  Canvas.FillRect(RBig);
  //Farbe zerlegen
  R := GetRValue(InitialColor);
  G := GetGValue(InitialColor);
  B := GetBValue(InitialColor);
  //Grünanteil erhöhen, wenn möglich
  if integer(G + FSteps * IncPerStep) <= MAXBYTE then
    inc(G, FSteps * IncPerStep)
  else
    G := MAXBYTE;
  Canvas.Brush.Color := RGB(R, G, B);
  Canvas.FillRect(RSmall);
end;

procedure TFormTest.Button1Click(Sender: TObject);
begin
  inc(FSteps);
  invalidate;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat