AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rechteck zeichnen

Ein Thema von Larsi · begonnen am 19. Jul 2008 · letzter Beitrag vom 19. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
Larsi

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

Rechteck zeichnen

  Alt 19. Jul 2008, 14: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
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#2

Re: Rechteck zeichnen

  Alt 19. Jul 2008, 15:01
Sollte gehen, setz vielleicht mal x2 und y2 anders als x1 und y1.
  Mit Zitat antworten Zitat
Larsi

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

Re: Rechteck zeichnen

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

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#4

Re: Rechteck zeichnen

  Alt 19. Jul 2008, 15:58
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:
x2 := x+50; y2 := y+50; HTH Frank
  Mit Zitat antworten Zitat
Larsi

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

Re: Rechteck zeichnen

  Alt 19. Jul 2008, 16:18
Kann mir nicht mal jemand sagen, wie ich den Code verändern muss damit das richtig klappt? Was soll das bringen 50 zu addieren?
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: Rechteck zeichnen

  Alt 19. Jul 2008, 16:22
Soche mal im Open Source Bereich nach "Mandelbrot". Da gibt's Anschaumaterial wie
man das macht.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Rechteck zeichnen

  Alt 19. Jul 2008, 16:28
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
probiers doch einfach mal aus dann wirst du ja sehen was es bringt.
Blackheart
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Rechteck zeichnen

  Alt 19. Jul 2008, 16:31
  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?
  Mit Zitat antworten Zitat
Larsi

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

Re: Rechteck zeichnen

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

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#10

Re: Rechteck zeichnen

  Alt 19. Jul 2008, 16:53
Du legst grad echt ein TD / Taktaky-Verhalten an den Tag

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
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:08 Uhr.
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