Hallo
Ich hänge an dem Problem aus einem PNG Image einen Bereich zu kopieren.
BitBlt und CopyRect habe ich bereits ausprobiert komme damit aber nicht weiter.
bei BitBlt wird nichts angezeigt und bei CopyRect wird mir ein weißes Kästchen angezeigt indem
eigentlich der Bildausschnitt angezeigt werden müsste, sofern ich über ein Temporäres TBitmap gehe.
Im ersten Bild im Anhang sieht man das Quellbild. Dort sind alle Bilder untereinander vom gleichen Typ.
Die JvImage Komponente hat das normale Bild und zusätzlich Bilder für Enter und Down.
Diese würde ich jeweils gerne mit einem Ausschnitt aus dem Quellbild füllen.
Delphi-Quellcode:
var
TmpImage: TJvImage;
TmpImage2: TJvImage;
BmP: TBitmap;
begin
Bmp := TBitmap.Create;
Bmp.PixelFormat := pf32Bit;
Bmp.Height := 17;
Bmp.Width := 20;
TmpImage := TJvImage.Create(Self);
TmpImage.Parent := Self;
TmpImage.Visible := True;
TmpImage.Left := 10;
TmpImage.Top := 10;
TmpImage.Picture.Bitmap.Canvas.Pen.Mode := pmnotXor;
TmpImage2 := TJvImage.Create(Self);
TmpImage2.Parent := Self;
TmpImage2.Top := 120;
TmpImage2.Left := 10;
TmpImage2.Width := 100;
TmpImage2.Height := 100;
Self.FMain_Normal_Frm.IMG_BACKGROUND.Picture.LoadFromFile(DefPath + 'mainframe.png');
TmpImage.Picture.LoadFromFile(DefPath + 'captionbuttons.png');
TmpImage.AutoSize := True;
bmp.Canvas.CopyRect(Rect(0, 0, 20, 17), TmpImage.Picture.Bitmap.Canvas, Rect(0, 0, 20, 17));
TmpImage2.AutoSize := True;
TmpImage2.Picture.Bitmap.Assign(BmP);
TmpImage2.Picture.Bitmap := Bmp;
Theoretisch sollte im zweiten Bild der Button Minimieren angezeigt werden, aber ausser einem weißen Kästchen eben nichts zu sehen.
Wenn ich es ohne temporärem TBitmap mache, so ists direkt schwarz.
Wo genau habe ich den Fehler, kann mir da jemand helfen?
Gruß
Daniel