Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: GDI+ Graduelles Rechteck (transparent)
3. Feb 2013, 11: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)
|
|
Zitat
|