Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
10. Feb 2020
Lock/Unlock brauchst vor allem bei Multithread, damit nicht zwei Zeichenoperationen gleichzeitig auf dem Bitmap arbeiten.
R := Rect(0, 0, Bitmap1.Width,Bitmap1.Height); // deine Rects sind ja gleich, da brauchst dann nur Eins
//Bitmap2.PixelFormat := Bitmap1.PixelFormat;
Bitmap2.SetSize(Bitmap1.Width, Bitmap1.Height);
Bitmap2.Canvas.CopyRect(R, Bitmap1.Canvas, R);
// bzw.
...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by himitsu,
10. Feb 2020
Assign kopiert nicht den Bildinhalt.
Es kopiert nur die Referenz auf das interne TBitmapImage und die Eigenschaften Transparent, TransparentColor, TransparentMode, PixelFormat und AlphaFormat.
Vor allem bei Multithread oder wenn in den Bitmaps nachher noch was geändert wird, dann können schon komische Dinge rauskommen.
TBitmapImage = class(TSharedImage)
private
FHandle: HBITMAP; ...