Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - grafica
Forum - Pascal - grafica

Avatar
Matyu93 (Normal User)
Newbie


Messaggi: 3
Iscritto: 03/12/2009

Segnala al moderatore
Postato alle 12:44
Domenica, 10/01/2010
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

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:30
Domenica, 10/01/2010
Intato credo che nel diachiarare l' InitGraph tu debba aggiungere anche il percorso della cartella BGI... ad esempio se stai usando turbo pascal:
Codice sorgente - presumibilmente Plain Text

  1. 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 il 10/01/2010 alle 14:31
PM Quote
Avatar
tasx (Dev Team)
Expert


Messaggi: 439
Iscritto: 15/12/2008

Segnala al moderatore
Postato alle 15:17
Domenica, 10/01/2010
Ciao
Dovresti includere anche la unti graph, quindi:
Codice sorgente - presumibilmente Pascal

  1. uses crt,graph;


PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 15:19
Domenica, 10/01/2010
che compilatore usi? immagino Free Pascal, puoi confermare?

PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 16:24
Domenica, 10/01/2010
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.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:38
Domenica, 10/01/2010
Invece di fare tutta la procedura con la wincrt, basta mettere la funzione Readln prima di CloseGraph:

Codice sorgente - presumibilmente Plain Text

  1. (*...*)
  2. Readln;
  3. CloseGraph;
  4. (*...*)


PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 19:37
Domenica, 10/01/2010
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 il 10/01/2010 alle 20:59
PM Quote