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 - Mouse, leftpressed
Forum - Pascal - Mouse, leftpressed

Avatar
dam930 (Normal User)
Newbie


Messaggi: 2
Iscritto: 03/02/2010

Segnala al moderatore
Postato alle 20:02
Mercoledì, 03/02/2010
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.

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 20:49
Mercoledì, 03/02/2010
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 il 03/02/2010 alle 21:02
PM Quote
Avatar
dam930 (Normal User)
Newbie


Messaggi: 2
Iscritto: 03/02/2010

Segnala al moderatore
Postato alle 21:25
Mercoledì, 03/02/2010
Grazie mille, mi hai fatto un grandissimo favore. Scusa, la prossima volta metto il codice.

PM Quote
Avatar
Phi (Member)
Expert


Messaggi: 241
Iscritto: 30/12/2009

Segnala al moderatore
Postato alle 15:29
Domenica, 07/02/2010
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.

PM Quote