Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Problema grqph pascal\lazarus
Forum - Pascal - Problema grqph pascal\lazarus

Avatar
leogero (Normal User)
Newbie


Messaggi: 3
Iscritto: 09/10/2015

Segnala al moderatore
Postato alle 17:34
Venerdì, 09/10/2015
Buongiorno a tutti,questo è il mio primo messaggio qui sul forum;ho da poco iniziato a studiare il linguaggio pascal e sto cominciando a programmare qualcosa di elementare.
Oggi ho provato a usare le funzioni grafiche di pascal ma mi viene segnalato un errore nell'attivare le funzioni grafiche,in particolare l'inizio del programma è così:
program(...)
Uses
graph;
Var gd,gm,ax,ay :integer;

Begin
gd:=detect;
initgraph(gd,gm,'C:\FPC');
(......)
End .

Mi da errore su gm dicendo : call by arg no.2 has to match exactly:got long lnt expected small lnt

Non riesco a capire il motivo, ho provato a modificare qualcosa ma niente.
Cosa potrei fare?

Scusate per la domanda forse banale e per il linguaggio poco tecnico ma è veramente da poco che uso pascal.
Grazie in anticpo

Ultima modifica effettuata da leogero il 09/10/2015 alle 17:35
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6109
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 18:24
Venerdì, 09/10/2015
gm deve essere dichiarato come smallint, non come integer.


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote
Avatar
leogero (Normal User)
Newbie


Messaggi: 3
Iscritto: 09/10/2015

Segnala al moderatore
Postato alle 15:31
Sabato, 10/10/2015
Grazie mille.
Ne approfitto per chiedervi un'altra cosa:
Praticamente devo far si che un ciclo si interrompa nel momento che premo una lettera sulla tastiera ,ho lettondi readkey e pressed key ma non ho ben capito come usarli.inoltre vorrei che il ciclo si interrompa solo con una determinata lettera premuta ,tipo la s.come faccio?
Grazie


PM Quote
Avatar
leogero (Normal User)
Newbie


Messaggi: 3
Iscritto: 09/10/2015

Segnala al moderatore
Postato alle 22:16
Sabato, 10/10/2015
In particolare il programma è questo:

uses crt;
var x,t,k,r,a,l:integer;
  s,q:string;
  w:char;
keypressed:boolean;


begin
readln(q);
l:=length(q);
writeln('clicca lettera comparsa prima che arrivi a y:24');
clrscr;
  for x:=1 to  80 do
  begin
    gotoxy(x,24);
    writeln('*');
  end;
for k:=1 to 5 do
begin
  randomize ;
  t:=random(l);
  r:=random(34);//valore x
  gotoxy(r,1)  ;
  if t=0 then
  begin
    t:=1;
  end
  else
  begin

  end;

writeln(q[t]);
a:=1 ;
repeat
   a:=a+1 ;
gotoxy( r,a-1);
writeln( ' ');
gotoxy(r,a);
writeln(q[t]);
delay(100);


until (a=24)or keypressed;

end;

               readln();
end.
                    
In pratica il programma consiste in una specie di gioco in cui devi premere sulla tastiera una lettera random da una parola immessa precedentemente prima che la lettera che scende raggiunga la Y=24.
Il problema è che non funziona neanche la funzione keypressed.Praticamente io vorrei far fermare il ciclo repeat...until quando si preme la lettera casuale che compare nello schermo dalla tastiera.
Ho provato a avviare il programma ma premendo un tasto repeat until non si ferma.
Inoltre vorrei che il ciclo si fermasse solo se viene premuta una determinata lettera nello schermo e che quindi keypressed diventi true solo quando quella lettera venga premuta.
come faccio:-?
grazie

PM Quote