Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Transparenz bei einem Bitmap in Canvas (https://www.delphipraxis.net/68187-transparenz-bei-einem-bitmap-canvas.html)

Lestat 25. Apr 2006 21:56


Transparenz bei einem Bitmap in Canvas
 
Hey Leute,

ich habe hier ein kleines Problem, meines Wissen nach sollte es funzen, tut es aber nicht :P

Also ich lade ein Bitmap und möchtes es danach in ein Canvas malen, wobei die Farbe "clRed" nicht mitgemalt, also transparent sein soll.

So sieht es bei mir aus:
Delphi-Quellcode:
procedure Tfrm_Editor.DrawGrid1DrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
Var
  temp : TBitmap;
begin
  Temp := TBitmap.Create;
  ImageList1.GetBitmap(ARow,temp);
  temp.TransparentColor := clRed;
  temp.Transparent := true;
  BitBlt(DrawGrid1.Canvas.Handle,Rect.Left,Rect.Top,70,70,temp.Canvas.Handle,0,0,SRCCOPY);
  Temp.Free;
end;
Aber wie gesagt es funktioniert nicht.

Also wer kann mir helfen :coder2:

3_of_8 25. Apr 2006 22:04

Re: Transparenz bei einem Bitmap in Canvas
 
Probiers mal mit TCanvas.CopyRect.

Hawkeye219 25. Apr 2006 22:19

Re: Transparenz bei einem Bitmap in Canvas
 
Hallo Lestat,

Willkommen in der DP! :hi:

Der Befehl BitBlit beachtet die von dir gesetzte Transparenzfarbe nicht.
Versuche es einmal so:

Delphi-Quellcode:
DrawGrid1.Canvas.Draw (Rect.Left, Rect.Top, temp);
Gruß Hawkeye

Lestat 25. Apr 2006 22:45

Re: Transparenz bei einem Bitmap in Canvas
 
Danke Hawkeye, das hat geholfen, wie sollte ich denn auch drauf kommen, das BitBlt das Transparent nicht beachtet ;)

Dir auch Danke 3_of_8 für die schnelle antwort, habe mich aber für Alternative 2 entschieden... :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz