Oppure

Loading
03/02/10 19:02
dam930
Ho letto la guida sull'uso del mouse in pascal grazie alla libreria mouse.tpu scaricata tramite questo sito.
Ho un problema però:
utilizzando due repeat until leftpressed di seguito e non sapendo come negare la prima volta il leftpressed, cosi preparandolo per il secondo ciclo, il progrmma supera tutte e due i cicli di seguito.
Mi potreste per favore darmi una soluzione? Grazie in anticipo.
aaa
03/02/10 19:49
TheKaneB
invece di controllare direttamente lo stato del mouse, memorizza su una variabile booleana il valore ritornato da leftpressed.

la variabile potrebbe essere una cosa tipo
var
lastpressed : boolean;

così nel ciclo repeat..until potrai usare la condizione
repeat
lastpressed := leftpressed;
{ altro codice}
until (leftpressed and (not lastpressed));

in questo modo la condizione sarà verificata soltanto nell'istante esatto in cui premi il tasto, perchè nell'istante immediatamente successivo anche la variabile "lastpressed" sarà TRUE, quindi non verrà verificata la condizione di terminazione del ciclo.

Ciao ;)

PS: La prossima volta però posta il codice, altrimenti è più difficile aiutarti... non tutti gli utenti del forum sono pazienti come me...
Ultima modifica effettuata da TheKaneB 03/02/10 20:02
aaa
03/02/10 20:25
dam930
Grazie mille, mi hai fatto un grandissimo favore. Scusa, la prossima volta metto il codice.
aaa
07/02/10 14:29
Phi
oppure potresri usare

repeat delay(1) until LeftPressed;
repeat delay(1) until not(LeftPressed);
repeat delay(1) until LeftPressed;

è meglio usare delay(1) che aspetta un millisecondo per non sovracaricare la CPU.

praticamente aspetta finche viene schiaccato poi aspetta finchè viene alzato e poi nuovamente finchè viene schiaccato.
aaa