Bei der Linie mit PutPixel, bleibt es schwarz.
Verändere ich aber die Grösse des Formes, dann wird die Linie mit PutPixel gezeichnet, aber nicht synchrom mit dem Timer.
Sobald ich aufhöre das Fenster zu Resizen, verändert sich die Linie mit PupPixel nicht mehr.
Code: Alles auswählen
procedure TForm1.PutPixel(x, y: integer; col: TColor);
var
rgb: ^TColor;
begin
if (x < 0) or (x > ClientWidth) or (y > ClientHeight) then begin
Exit;
end;
with bit.RawImage do begin
rgb := Pointer(GetLineStart(y));
Inc(rgb, x);
rgb^ := col;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i: integer;
c: integer;
begin
c := Random($FFFFFF);
for i := 0 to 100 do begin
bit.Canvas.Pixels[i, 200]:= c;
end;
for i := 0 to 100 do begin
bit.Canvas.Pixels[i, 5]:= c;
end;
for i := 0 to 100 do begin
PutPixel(i, 10, c);
end;
Invalidate;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Interval:=50;
bit := TBitmap.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
bit.Free;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Draw(0, 0, bit);
end;
procedure TForm1.FormResize(Sender: TObject);
begin
bit.Width := ClientWidth;
bit.Height := ClientHeight;
end;
end.
Code: Alles auswählen
Canvas.Draw(0, 0, bit);