![]() |
BitBlt() vs. Canvas.Draw()
Mein Herren, ich habe ein Problem.
:coder2: Wahrscheinlich stehe ich nur auf dem Schlauch und Ihr werdet mir sagen "Mensch, Daniel - bist Du aber blöd." (Aber keine Angst, das kann ich vertragen [wenn ich einen 'Account-Löschen'-Button in klickbarer Nähe habe *g*]). Kurz gesagt möchte ich ein Bitmap auf einem Canvas ausgeben. Der folgende Befehl funktioniert wunderbar:
Delphi-Quellcode:
fGradient ist vom Typ TBitmap und beinhaltet das Bild, ItemRect ist ein korrekt initialisiertes TRect. Nun will ich's aber mit BitBlt() zeichnen:
TargetCanvas.Draw( ItemRect.Left, ItemRect.Top, fGradient );
Delphi-Quellcode:
BitBlt liefert FALSE zurück und GetLastError() meldet "Das Handle ist ungültig". *räusper* Wie jetzt? :gruebel: Was gibt es denn bei BitBlt neuerdings zu beachten? Ich habe aktuell keinen Code bei der Hand, aber ich habe das einst früher problemlos benutzt.
BitBlt( TargetCanvas.Handle, ItemRect.Left, ItemRect.Top, ItemRect.Right-ItemRect.Left, ItemRect.Bottom-ItemRect.Top, fGradient.Handle, 0, 0, SRCCOPY );
Hat da wer 'ne Idee, was ich mal prüfen könnte bzw. worauf ich achten sollte? |
Re: BitBlt() vs. Canvas.Draw()
fGradient.Canvas.Handle, erwartet wird ein hDC -> Device Context und nicht ein hBitmap -> Bitmaphandle.
Gruß Hagen |
Re: BitBlt() vs. Canvas.Draw()
Hab auch gerade kein Delphi zur Hand, aber müsste es nicht fGradient.Canvas.Handle heißen?
[edit] Schon wieder um Haaresbreite zu spät :? [/edit] |
Re: BitBlt() vs. Canvas.Draw()
*schäm*
Danke Euch beiden. :-) Ich starre jetzt so lange auf den Code, vermutlich wäre ich nie drauf gekommen. [edit] Problem unter 2 Minuten gelöst. :thumb: :dp: ;-) [/edit] |
Re: BitBlt() vs. Canvas.Draw()
Zitat:
Gruß Hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 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