Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Rechteck zeichnen (https://www.delphipraxis.net/117510-rechteck-zeichnen.html)

Larsi 19. Jul 2008 13:54


Rechteck zeichnen
 
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

Nils_13 19. Jul 2008 14:01

Re: Rechteck zeichnen
 
Sollte gehen, setz vielleicht mal x2 und y2 anders als x1 und y1.

Larsi 19. Jul 2008 14:06

Re: Rechteck zeichnen
 
Zitat:

Zitat von Nils_13
Sollte gehen, setz vielleicht mal x2 und y2 anders als x1 und y1.

Kannst du mir das mal im Code zeigen?

_frank_ 19. Jul 2008 14:58

Re: Rechteck zeichnen
 
Zitat:

Zitat von Larsi
Delphi-Quellcode:
x1 := x; y1 := y;
x2 := x; y2 := y;

du setzt dort den Punkt für links oben (x1,y1) und den für unten rechts (x2,y2) auf den gleichen wert, somit malst du ein Rechteck von 0px breite und 0px Höhe.
lösen z.b. so:
Delphi-Quellcode:
x2 := x+50; y2 := y+50;
HTH Frank

Larsi 19. Jul 2008 15:18

Re: Rechteck zeichnen
 
Kann mir nicht mal jemand sagen, wie ich den Code verändern muss damit das richtig klappt? Was soll das bringen 50 zu addieren?

turboPASCAL 19. Jul 2008 15:22

Re: Rechteck zeichnen
 
Soche mal im Open Source Bereich nach "Mandelbrot". Da gibt's Anschaumaterial wie
man das macht.

Blackheart 19. Jul 2008 15:28

Re: Rechteck zeichnen
 
Zitat:

Zitat von Larsi
Kann mir nicht mal jemand sagen, wie ich den Code verändern muss damit das richtig klappt? Was soll das bringen 50 zu addieren?

Ich verbitte mir die bettelei nach Quellcode :wink:
probiers doch einfach mal aus dann wirst du ja sehen was es bringt.

Namenloser 19. Jul 2008 15:31

Re: Rechteck zeichnen
 
Delphi-Quellcode:
  x2 := x;  y2 := y1+x-x1;   //Quadrat durch X-Verschiebung der Maus
Was glaubst du, was dieser Code macht? Wie wär's mal mit Hirn einschalten? :wall:

Larsi 19. Jul 2008 15:44

Re: Rechteck zeichnen
 
Habs jetzt hinbekommen aber ich habe nochmal ne Frage: Ich habe bsps. das Recheckt: Rec:Trect deklariert, wie kann ich jetzt dieses Rechteck benutzen um zu zeichnen um später damit weiter zuporgrammieren?


Kann ich einfach sagen Image1.Canvas.Rec(p1, p2, p3, p4) oder wie macht man das?

Phoenix 19. Jul 2008 15:53

Re: Rechteck zeichnen
 
Du legst grad echt ein TD / Taktaky-Verhalten an den Tag :warn:

Schau Dir doch mal die Onlinehilfe zu TCanvas, TRect etc. an.
Und wenn das nicht hilft und Du Google anschmeisst wirst Du sogar den einen oder anderen Thread hier in der DP zu diesen Schlagwörtern findern :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:59 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz