Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: GDI+ Graduelles Rechteck (transparent)

  Alt 3. Feb 2013, 10:32
IMHO nahe genug daran um es nach Deinen Wünschen anzupassen.

Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
const
  RelativeIntensities: array [0 .. 2] of Single = (0.0, 0.9, 0.0);
  RelativePositions: array [0 .. 2] of Single = (0.0, 0.6, 1.0);
var
  Graphics: IGPGraphics;
  Blend: IGPBlend;
  Brush: IGPLinearGradientBrush;
  F1, F2: TGPColor;
  y1, y2: Integer;
begin
  y1 := 0;
  y2 := 30;
  { "normle" Ellpise für Transparenztest
    canvas.Brush.Color := clBlue;
    Canvas.Ellipse(0,0,500,500);
    }

  Graphics := TGPGraphics.create(Canvas.Handle);
  F1.Initialize(255 * 80 div 100, 250, 250, 250);
  F2.Initialize(255 * 80 div 100, 100, 100, 100);
  // harte Übergänge verhindern

  Brush := TGPLinearGradientBrush.create(TGPPoint.create(0, y1 - 2)
    // harte Übergänge verhindern
      , TGPPoint.create(0, y2 + 2), F1, F2);

  Blend := TGPBlend.create(RelativeIntensities, RelativePositions);
  Brush.Blend := Blend;
  Graphics.FillRectangle(Brush, y1, 155, 500, y2);
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat