Bei der PaintBox wird als 0-Punkt die linke-obere des Formes genommen.
Bei dem Panel, funktioniert es richtig, als Null-Punkt wird die Ecke des Panels genommen.
Ist dies ein Bug, oder wurde dies bewusst so gemacht ?
Code: Alles auswählen
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
male(PaintBox1.Canvas);
end;
procedure TForm1.Panel1Paint(Sender: TObject);
begin
male(Panel1.Canvas);
end;
procedure TForm1.male(can: TCanvas);
begin
can.Brush.Color:=$FF0000;
can.Rectangle(10, 10, 100, 100);
SetWindowOrgEx(can.Handle, 0, 0, nil);
can.Brush.Color:=$FF00;
can.Rectangle(20, 20, 110, 110);
end;