Hi,
mit folgendem Code kann man auf einer Form ein Quadrat zeichnen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
canvas.Pen.mode :=pmNotXor;
canvas.pen.style:= psDot; //Gepunktete Linien
canvas.pen.color:=clRed;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
canvas.brush.style :=bsClear; //Für transparentes Quadrat
if shift = [ssleft] then //Zeichnen mit linker Maustaste
begin
x1 := x; y1 := y;
x2 := x; y2 := y;
canvas.rectangle (x1,y1,x2,y2);
end;
if shift =[ssright] then //Quadrat löschen mit rechter Maustaste
canvas.rectangle(x1,y1,x2,y2);
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if shift = [ssleft] then begin
canvas.rectangle (x1,y1,x2,y2);
x2 := x; y2 := y1+x-x1; //Quadrat durch X-Verschiebung der Maus
canvas.rectangle (x1,y1,x2,y2);
end
end;
Meine Frage ist jetzt wie ich ein Rechteck zeichnen kann, bzw. was ich im Code umändern muss damit die gezeichnete Form nicht immer quadratisch ist?
Es soll so sein wie wenn man in Paint ein Rechteck zieht.
MFG Lars Wiltfang