![]() |
Transparentes Rechteck zeichnen
Wie kann ich ein transparentes Rechteck zeichnen, also dass man sozusagen die Stelle einfärbt.
Angeblich soll ja der Farbcode folgendermaßen lauten:
Delphi-Quellcode:
Oder habe ich da was falsch verstanden? Jedenfalls wird das Rechteck bei einen ungeraden A schwarz ansonsten Blau (ich hatte als RGB Blau angegeben)
$AABBGGRR // A = Alphakanal, BGR = RGB andersherum
|
Re: Transparantes Rechteck zeichnen
vllt kannst dir die letzte funktion nen bissel selber umbasteln, um dein gewünschtes ergebnis zu erhalten..
siehe: ![]() |
Re: Transparentes Rechteck zeichnen
Liste der Anhänge anzeigen (Anzahl: 1)
Na... Das wird net sein...
Ich ahbe mal ein Beispiel angehangen wie ich das dachte :P |
Re: Transparentes Rechteck zeichnen
Vielleicht hilft Dir
![]() |
Re: Transparentes Rechteck zeichnen
Zitat:
|
Re: Transparentes Rechteck zeichnen
Hallo Fabian,
meinst du so etwas?
Delphi-Quellcode:
Gruß Hawkeye
// zeichnet ein transparentes Rechteck
// // aCanvas Ziel-Canvas // aRect Zeichenbereich // aColor Füllfarbe // aIntensity Intensität (0=min, 255=max) procedure AlphaBlendRect (const aCanvas: TCanvas; const aRect: TRect; const aColor: TColor; const aIntensity: Byte); var w, h : Integer; Bitmap : TBitmap; BlendParams : TBlendFunction; begin w := Succ(aRect.Right - aRect.Left); h := Succ(aRect.Bottom - aRect.Top); Bitmap := TBitmap.Create; try Bitmap.Width := w; Bitmap.Height := h; Bitmap.Canvas.Brush.Color := ColorToRGB(aColor); Bitmap.Canvas.FillRect (Rect(0, 0, w, h)); BlendParams.BlendOp := AC_SRC_OVER; BlendParams.BlendFlags := 0; BlendParams.SourceConstantAlpha := aIntensity; BlendParams.AlphaFormat := 0; Windows.AlphaBlend(aCanvas.Handle, aRect.Left, aRect.Top, w, h, Bitmap.Canvas.Handle, 0, 0, w, h, BlendParams); finally Bitmap.Free; end; end; |
Re: Transparentes Rechteck zeichnen
Zitat:
Wenn muss/soll ich als Autor der Funktion nennen? Dich oder hast du die Funktion vielleicht von voandersher? @ DeddyH: Sry, aber Hawkeyes Code ist übersichtlicher :) Und funktioniert gut! |
Re: Transparentes Rechteck zeichnen
Zitat:
![]() Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:41 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