| Autor |
Beitrag |
HelgeLange
      
Beiträge: 735
Erhaltene Danke: 6
Windows 7
Delphi7 - Delphi XE
|
Verfasst: Fr 02.02.07 19:23
Ich habe mir auf Grund einer von mir gebauten Resourcen-Verwaltung eine Komponente von TPaintBox abgeleitet, die das Zeichnen selbst übernimmt. Das funktioniert soweit ganz gut, nur dass ich gerade vor dem Problem stehe, dass ich einen grauen Hintergrund hab, die Transparentfarbe allerdings weiss ist, das sieht natürlich doof aus. Mein Paint siet wie folgt aus :
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure TResBitmap.Paint; var MemDC : HDC; OldBitmap : DWORD; begin inherited; If FhBitmap > 0 Then begin MemDC := CreateCompatibleDC(0); OldBitmap := SelectObject(MemDC, FhBitmap); BitBlt(Canvas.Handle, 0, 0, Width, Height, MemDC, 0, 0, SRCCOPY); SelectObject(MemDC, OldBitmap); DeleteDC(MemDC); end; end; |
Gibt's Ideen ?
_________________ "Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: So 04.02.07 15:02
BitBlt kopiert nur stumpf ein Bitmap von A nach B. Die Methode die du suchst heißt TRANSPARENTBLT.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
HelgeLange 
      
Beiträge: 735
Erhaltene Danke: 6
Windows 7
Delphi7 - Delphi XE
|
Verfasst: Mo 05.02.07 15:07
Danke, das hat geholfen 
_________________ "Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
|
|
freedy
      
Beiträge: 403
Erhaltene Danke: 1
Winows 7
Delphi XE
|
Verfasst: Mo 12.03.07 16:26
Hi!
Könntest du deine jetzige Lösung evtl. posten? Würde mich sehr interessieren.
|
|
HelgeLange 
      
Beiträge: 735
Erhaltene Danke: 6
Windows 7
Delphi7 - Delphi XE
|
Verfasst: Mo 12.03.07 16:34
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| If FhBitmap > 0 Then begin MemDC := CreateCompatibleDC(0); OldBitmap := SelectObject(MemDC, FhBitmap); If FpTransparency.Transparent Then begin TransparentBlt(Canvas.Handle, 0, 0, Width, Height, MemDC, 0, 0, Width, Height, FpTransparency.TransparentColor); end else begin BitBlt(Canvas.Handle, 0, 0, Width, Height, MemDC, 0, 0, SRCCOPY); end; SelectObject(MemDC, OldBitmap); DeleteDC(MemDC); end; |
Bitte schön
_________________ "Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
|
|
freedy
      
Beiträge: 403
Erhaltene Danke: 1
Winows 7
Delphi XE
|
Verfasst: Mo 12.03.07 17:42
Danke 
|
|
|