Zitat von
Popov:
Der andere Nachteil liegt in der Natur von ScanLine. Du hast gefragt wie man damit ein Rechteck zeichnen kann. Unmöglich ist es nicht, aber ScanLine liefert dir nur den Zugriff auf eine horizontale Linie in der Bitmap. Für die Linie darunter mußt du erneut ScanLine aufrufen, usw. Für ein Rechteck solltest du also besser die entsprechende Funktion wählen.
wenn man das Pixelformat auf 32 Bit einstellt, oder bei 24 Bit zufällig die Länge einer Zeile dem Vielfachen von Integer entspricht,
dann könnte man sich auch mit ScanLine auf die letzte Zeile (da die Zeilen in einem BitMap intern von unten nach oben enthalten sind) eine "ScanLine" über das gesamte Bild besorgen
Delphi-Quellcode:
P: packed array[0..0] of packed record
b, g, r: Byte;
end;
P[y * width + x].b := 255; // blauen Farbanteil setzen
aber wie gesagt, sowas geht nur unter bestimmten Voraussetzungen, wo dann alle Zeilen genau aneinandergereiht sind.