Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Grenzen auf Koord.system einlesen,weiterverarbeiten...


Xornnbasti - Di 14.06.05 17:34
Titel: Grenzen auf Koord.system einlesen,weiterverarbeiten...
Hi Leute!

Bin ein Anfänger auf dem Delphi-Gebiet und soll mittels Click auf eine Paintbox, die mir ein Koordinatensystem und eine Funktion zeichnet, zwei Grenzen einlesen die dann zu weiterer Berechnung der Nullstellen benötigt werden. Meine Frage ist nun wie ich dem Programm beibringe, dass es sich (x1,y1) und (x2,y2) merken soll damit ich dann die Nullstellenberechnung weiterführen kann. Bei meinem Quellcode wird bis jetzt immer ein koordinatenpaar gespeichert, aber beim erneuten Click auf die Paintbox überschrieben:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
   
   begin
     with PaintBox1.Canvas do
     begin

      Pen.Color:=clred;  Brush.Color:=clred;
      Ellipse(X-3,Y-3,X+3,Y+3);
      xa:=X/40-5;
      ya:=-(Y/40-5);
end;

Vielen Dank im Voraus,

Gruß, Basti!

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.


Narses - Di 14.06.05 20:06

Moin und :welcome: im Forum!

Du hast doch zwei Variablen (xa und ya), vermutlich global, deklariert. Du könntest zwei weitere Vars xb und yb, sowie ein Boolean is_b := FALSE; deklarieren. Dann kannst du in der Prozedur folgendes machen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;  
  Shift: TShiftState; X, Y: Integer);  
    
begin  
  with PaintBox1.Canvas do begin  
    Pen.Color := clred;
    Brush.Color := clred;  
    Ellipse(X-3,Y-3,X+3,Y+3);  
    if (is_b) then begin
      xb := X/40-5;  
      yb := -(Y/40-5);  
    end
    else begin
      xa := X/40-5;  
      ya := -(Y/40-5);  
    end;
    is_b := NOT is_b;
  end
end;

Das ist jetzt nicht sonderlich elegant oder effizient, aber ohne mehr von deinem Code oder der Aufgabe zu kennen, fällt mir nichts weiter dazu ein.

cu
Narses