Entwickler-Ecke
Sonstiges (Delphi) - Problem mit delphi while Schleife
ss396 - Sa 10.03.12 17:56
Titel: Problem mit delphi while Schleife
Hallo ich habe ein problem mit meinem delphi.
Ich muss für Informatik ein Programm Strasse1 erstellen bestehend aus einer Kirche, 3 Häusern einer Strasse und einem Zaun.
Soweit so gut, aber als ich jetzt den Zaun mit einer while Wiederholung programmiert habe und das Project Starte und auf den Butten Zeichnen drücke kommt nicht das Bild sondern es passiert einfach gar nichts mehr.
Wenn ich das Programm schließen will kommt immer ein Fenster:"Das Programm wird gerade debuggt". Also habe ich einfach gewartet (2h) aber es ist nichts passiert kann mir vielleicht jemand sagen was das Problem ist?
Die Prozedur:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TStrasse1.ZaunZeichnen; begin with ImBild.Canvas do while 10 <= ImBild.Width-25 do begin Rectangle (10,240,10+5,240-20); Rectangle (10+4,240-3,10+11,240-7); Rectangle (10+4,240-13,10+11,240-17); end end; |
Danke im Voraus ,
ss396
Moderiert von
Gausi: Delphi-Tags hinzugefügt
Gausi - Sa 10.03.12 18:04
Hallo und :welcome: in der Entwickler-Ecke,
Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Ein Problem mit Delphi haben hier fast alle. ;-)
Das erhöht auch die Chance, dass dir einer bei der Endlosschleife, die du da gebaut hast, weiterhelfen wird. :)
Mathematiker - Sa 10.03.12 18:12
Hallo,
ss396 hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5:
| while 10 <= ImBild.Width-25 do begin Rectangle (10,240,10+5,240-20); Rectangle (10+4,240-3,10+11,240-7); Rectangle (10+4,240-13,10+11,240-17); end |
|
In deiner while-Schleife fragst du ab, ob 10 kleiner als die Bildbreite ist. Offensichtlich ändert sich in der Schleife aber nichts, d.h. die while-Bedingung wird nie falsch.
Die Prozedur und das Programm bleiben damit hängen.
Um genauer auf dein Problem zu antworten, müsstest Du erklären, wie die Straße und der Zaun aussehen sollen.
Grüße
Mathematiker
Nachtrag: Nach deiner PN möchtest Du die Latten des Zauns darstellen.
Nehmen wir an, es sollen Latten der Pixelbreite 5 und mit dem Abstand 4 Pixel zwischen den Latten sein, so wählst du eine integer-Variable, z.B. i, und lässt diese in der Schleife um 9 = 5+4 Pixel wachsen, d.h.
Delphi-Quelltext
1: 2: 3: 4: 5:
| i:=10; while i <= ImBild.Width-25 do begin Rectangle (i,240,i+5,220); i:=i+9; end |
Der Rest ergibt sich analog.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!