Zitat von
Bomberbb:
Nun ich habe es momentan so:
Delphi-Quellcode:
var
Zeichenflaeche:TCanvas;
BitBltBitMap:BBitmap;
Procedure TPaintPanel.Paint;
Begin //----- Paint -----
BitBltBitmap.width := Self.Width;
BitBltBitmap.height := Self.Height;
Zeichenflaeche := BitBltBitmap.canvas;
If Assigned(fOnPaint) then
fOnPaint(Self);
BitBlt(Self.Canvas.Handle, 0, 0, Self.width, Self.height, BitBltBitmap.Canvas.Handle, 0, 0, SRCCOPY);
Zeichenflaeche := Self.canvas;
End; //----- Paint -----
funktioniert so weit auch ganz gut. Finde nur das ist nicht ganz konsequent, da ich ja nun im Prog alle Aufrufe von Paintpanel1.canvas durch Paintpanel1.Zeichenflaeche ersetzen muss(und das sind einige)...
Ich weiss nicht was du damit bezwecken willst.
Denke aber das es sinnvoller wäre wenn du dich ganz von canvas verabschiedest.
Sinnvoll wäre es wenn du unter verwendung von BITMAPINFO , CreateDIBSection, CreateCompatibleDC
ein temporäres Bitmap erstellst und dieses auf die komponente welche über ein reales
Handle verfügt( Image kannst nicht verwenden)
mit BitBlt auf die komponente zeichnest.
Was du dann nur benötigst ist ein
handle und ein
DC welches du an BitBlt übergibst.
Das
Handle mußt du natürlich über GetDC in ein
DC konvertieren.
BitBlt(SourceDC, x, y, w, h,DestDC, 0, 0, SRCCOPY)
gruss Emil