PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rechteck erstellen


-JS-
06.03.2005, 17:32
Also ich hab ein Problem mit einem ziemlich simplen Programm...
In dem Programm soll Höhe und Breite eines Rechtecks vom User angegeben werden und das Programm soll die Ecken des Rechtecks auf dem Bildschirm (in Form von "+"en) ausgeben:


program border;
uses crt, graph;

var h,b,x,y : integer;

begin
clrscr;

writeln;
write('Höhe: '); readln(h);
write('Breite: '); readln(b);
writeln;
write('+');

y:=gety;
x:=((getx)-1);

gotoxy(x+b,y); write('+');

gotoxy(x,y+h); write('+');

gotoxy(x+b,y+h); write('+');

readln;
end.



Wenn ich das ausführe (keine Compile-Errors) und gebe für Höhe und Breite je 10 ein kommt in etwa das heraus:

+++



.............+ (ohne die Punkte ;) )

herauskommen soll aber wie gesagt so etwas:

+...........+



+...........+

Das heisst der Punkt oben links und der unten rechts stimmen...nur die 2 anderen nicht.

Ich versteh echt nicht warum das nicht funktioniert...
Thx4Help


Diogenes
06.03.2005, 18:20
Du hast die falschen Funktionen genmommen, um die Cursorpositionen zu lesen. "Deine" lesen die des Graphik-Cursors und nicht die des Textcursors. Du mußt folgendes tun:

Erstens entferne die Einbindung der Graph-Unit

[i]Zweitens ersetze


...

write('+');
y:=gety;
x:=((getx)-1);

...

durch

...

y:=WhereY;
x:=WhereX;

write('+');

...


(Die Umstellung der Auslesestatements und der ersten '+'-Ausgabe erfolgt, damit der Code ein wenig übersichtlicher ist: Du faßt die Ausgabe in 1 Abschnitt zusammen.)

Alle Klarheiten beseitigt?

-JS-
06.03.2005, 18:28
Ja!
Danke nochmal, jetzt funktioniert's.