Vielen Dank für die vielen Antworten.
Da ich aber auf dem "Zu-Fuss"-Weg nicht wirklich weitergekommen bin, habe ich mich einmal mit der Funktion StretchDIBits() genauer auseinander gesetzt.
Und siehe da: Es funktioniert.
Code:
if FCanDraw then
begin
TmpBitMap := TBitmap.Create;
TmpBitMap.Width := FWidth_Cam;
TmpBitMap.Height := FHeight_Cam;
test2 := AOleVariant;
SetStretchBltMode(TmpBitMap.Canvas.Handle, COLORONCOLOR);
StretchDIBits(TmpBitMap.Canvas.Handle,
0,
0,
FWidth_Cam,
FHeight_Cam,
0,
0,
FWidth_Cam,
FHeight_Cam,
test2,
TmpBI,
DIB_RGB_COLORS,
SRCCOPY);
AImage.Picture.Assign(TmpBitMap);
TmpBitMap.Free;
end
else
begin
AImage.Picture.Assign(NIL);
end;