Erstmal Danke für deine Antwort und deine Bemühungen
Tatsächlich funktioniert das in diesem Beispiel perfekt, also wenn ich einen Farbverlauf habe (verstehe aber ehrlich gesagt nicht, warum es dann funktioniert, denn nach meinem Verständnis müsste die rote Fläche mit meinem ursprünglichen Code trotzdem ausfaden, da der Alpha-Wert ja irgendwann 0 wird
).
Das mit dem roten Farbverlauf war jedoch nur ein kleiner Test, denn eigentlich will ich später alphatransparente Grafiken darstellen können. Hab jetzt deshalb mal meine Zeichen-Routine zum Testen angepasst:
Delphi-Quellcode:
for y := 0 to 255 do
begin
pBMP := bgBMP.ScanLine[y];
//
for x := 0 to 255 do
begin
pBMP[x].rgbRed := 0;
pBMP[x].rgbGreen := 255-y;
pBMP[x].rgbBlue := 0;
//
if (y > 100) and (y < 200) then pBMP[x].rgbReserved := 0
else pBMP[x].rgbReserved := 255-y;
end;
end;
Dann ergibt sich (logischerweise) wieder das ursprüngliche Problem (siehe Bild im Anhang). An was kann denn das liegen? Kann es sein, dass ich die Arbeitsweise von UpdateLayeredWindow falsch verstehe?