![]() |
AW: Prozedur abbrechen
Delphi-Quellcode:
procedure TForm1.BtqeClick(Sender: TObject);
var a, b, c, d, ax, ay, bx, by, cx, cy, dx, dy, ex, ey, fx, fy, gx, gy, hx, hy : integer; begin //Variablen zuweisen: try a := StrToInt(Edbr.text); b := StrToInt(Edh.text); c := StrToInt(Edt.text); except showmessage ('Bitte überprüfen sie ihre Eingaben!'); end; d := round(sqrt((c/2)*(c/2)/2)); ax := 10; ay := 10 + d + b; bx := 10 + a; by := 10 + d + b; cx := 10 + a; cy := 10 + d; dx := 10; dy := 10 + d; ex := 10 + d; ey := 10 + b; fx := 10 + a + d; fy := 10 + b; gx := 10 + a + d; gy := 10; hx := 10 + d; hy := 10; //wenn der quader zu groß oder zu klein ist: if (d+b>500) or (d+a>700) then showmessage ('Geben sie bitte kleinere Werte ein!'); if a or b or c < 20 then showmessage ('Geben sie bitte größere Werte ein!'); //Zeichnen: Repaint; canvas.Pen.Color := clGray; canvas.Pen.Width := 1; canvas.MoveTo(ex,ey); canvas.lineTo(ax,ay); canvas.MoveTo(ex,ey); canvas.lineTo(fx,fy); canvas.moveTo(ex,ey); canvas.lineTo(hx,hy); canvas.pen.color := clBlack; canvas.pen.width := 2; canvas.moveTo(dx,dy); canvas.lineTo(cx,cy); canvas.lineTo(bx,by); canvas.lineTo(ax,ay); canvas.lineTo(dx,dy); canvas.lineTo(hx,hy); canvas.lineTo(gx,gy); canvas.lineTo(fx,fy); canvas.LineTo(bx,by); canvas.MoveTo(cx,cy); canvas.lineTo(gx,gy); //oberflächeninhalt/Volumen berechen: PV.Caption:=IntTOStr (a*b*c); PO.Caption:=IntToStr (a*b*2+a*c*2+b*c*2); //Drehen-Button sichtbar machen: Btdrehen.Visible := true; end; |
AW: Prozedur abbrechen
Zitat:
Und geahnt das es so ist:zwinker: |
AW: Prozedur abbrechen
Bitte verwende zukünftg Code-Tags. In diesem Fall Delphi-Tags.
Einfach Code markieren und Delphi-Symbol in der Toolbar des erweiterten Editors anklicken |
AW: Prozedur abbrechen
Da liegt aber einiges im Argen, wenn ich den Code so sehe. Erstmal hätte ich die Eingabe, das Zeichnen und die Berechnungen in separate Routinen ausgelagert. Da die Werte aber in allen Routinen gebraucht werden, drängt sich hier schon eine Klasse von ganz alleine auf. Mit den Methoden: CheckInput, PaintCube, CalcVolume, CalcSurface.
Wenn es so bleiben soll (Dann aber bitte den Code niemanden zeigen, der was davon versteht.), dann packe den ganzen Code in den try-exceptblock. |
AW: Prozedur abbrechen
Von mir auch noch ne Hilfe.
Trenne Daten/berechnungen von VCL- in diesem Fall canvas. Wenn Deine Berechnungen oder Eingaben nicht stimmen, brauchst du auch nicht zeichnen und somit auch nicht die Procedure vorzeitig verlassen! Gruss alfold |
AW: Prozedur abbrechen
habe das problem gelöst! vielen dank für eure hilfe!:-D
|
AW: Prozedur abbrechen
Verrätst du uns auch wie?
|
AW: Prozedur abbrechen
vermute mal :wink:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz