Thema: Delphi Rechteck zeichnen

Einzelnen Beitrag anzeigen

Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#1

Rechteck zeichnen

  Alt 19. Jul 2008, 13:54
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
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat