Oppure

Loading
10/01/10 11:44
Matyu93
ciao a tutti scusate ho un piccolo problema; ho provato a fare un programma di grafica semplice semplice seguendo le istruzioni delle guide di questo sito... xo non sono riuscito, considerando anche che sono alle prime armi, io provo a farvi vedere il mio programma...

program cerchio;
uses crt;
var gd,gm:integer;
x,y,d:word;
begin
gd:=detect;
InitGraph(gd,gm);
if graphresult<>grOK then halt;
x:=5;
y:=10;
d:=20;
closegraph;
readln;
end.

in teoria doveva servire x crearmi un cerchio sul computer qualcuno mi sa dire cosa ho sbagliato?
grazie ciao
aaa
10/01/10 13:30
Intato credo che nel diachiarare l' InitGraph tu debba aggiungere anche il percorso della cartella BGI... ad esempio se stai usando turbo pascal:
InitGraph(gd,gm, '[i]directoryincuic'èilpascal[/i]\tp7\BGI')


Inoltre per fare il cerchio basta il codice

Circle (X,Y,R)
Dove:
X = Coordinata X del centro
Y = Coordinata Y del centro
R = misura del raggio

spero di essere stato utile
Ultima modifica effettuata da 10/01/10 13:31
10/01/10 14:17
tasx
Ciao
Dovresti includere anche la unti graph, quindi:
uses crt,graph;
aaa
10/01/10 14:19
TheKaneB
che compilatore usi? immagino Free Pascal, puoi confermare?
aaa
10/01/10 15:24
Phi
Solitamente io uso initgraph(<driver>, <modo>, '');
Comunque non capisco perchè aggiungi la unit crt: potresti anche toglierla.
Inoltre anche se riuscissi a compilarlo, anche se usassi la istruzione che ti ha dato a_butta la finestra grafica si chiuderebbe subito grazie a "Closegraph", dovresti quindi fare così:
*Aggiungi anche la unit "wincrt" alle altre unit e scrivere "repeat delay(1) until wincrt.keypressed" prima di closegraph, così la finestra resterà aperta finchè non viene schiaccato un tasto qualsiasi.
oppure
*invertire readln e closegraph.

program cerchio;
uses graph;
var gd,gm:integer;
x,y,d:word;
begin
gd:=detect;
InitGraph(gd,gm);
if graphresult<>grOK then halt;
x:=5;
y:=10;
d:=20;
Circle (X,Y,d);
readln;
closegraph;
end.

oppure

program cerchio;
uses graph, wincrt;
var gd,gm:integer;
x,y,d:word;
begin
gd:=detect;
InitGraph(gd,gm);
if graphresult<>grOK then halt;
x:=5;
y:=10;
d:=20;
Circle (X,Y,d);
closegraph;
repeat delay(1) until keypressed;
readln;
end.
aaa
10/01/10 17:38
Invece di fare tutta la procedura con la wincrt, basta mettere la funzione Readln prima di CloseGraph:

(*...*)
Readln;
CloseGraph;
(*...*)
10/01/10 18:37
Poggi Marco
L' errore puo ancche stare nella funzione "InitGraph(gd, gm);".
E necessario inserire una stringa pe l' identificazine del percorso per trovare il file graph.tpu.

Es.:InitGraph(gd, gm, 'c:\tp\units'); comunque dovrebbe funzionare anche InitGraph(gd, md, ''); ( ho inserito una stringa vuota.)

Inoltre se compili in Turbo Pascal 4 ,o successivi per dos, devi anche assicurarti che il file evega.bgi e graph.tpu, siano contenutinella stessa cartella del tuo programma.
Ultima modifica effettuata da Poggi Marco 10/01/10 19:59
aaa