Newsgroup: it.comp.lang.vo-clipper
Titolo: blocco della tastiera

Problema.
Nei programmi che ho scritto in clipper 5.2 nel lontano 1995
non ho previsto che gli operatori dopo aver acquisito l'operatività
mi anticipano l'input da tastiera non controllando la correttezza
delle
elaborazioni sul video. C'è qualcuno che mi può dire come faccio a
bloccare la tastiera
fin tanto che i risultati mi appaiano a video ? Esiste qualche
funzione clipper
che bocca e sblocca tastiera ?
Mille grazie.


Non mi pare. Però mi sembra che esista un'istruzione che svuota il
buffer, magari ti può essere utile ugualmente. Aspetta che cerco sulle
Norton Guides (ormai queste cose fanno parte di un lontano passato)...
Ecco: c'è il comando CLEAR TYPEAHEAD.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 ha scritto nel messaggio 
news:1bfe07dd.05020...@posting.google.com...

Usa la funzione kbddisable(.t.) e alla fine kbddisable(.f.). Non ricordo se 
è una funzione del clipper o delle catools.
Ciao, Enzo.

 è una funzione del clipper o delle catools.
Giusto, delle Clipper Tools:
http://www.clipx.net/ng/tools1-3/ngc0ff1.php
Mai usata.


 buffer, magari ti può essere utile ugualmente. Aspetta che cerco sulle
a me sembra che facevo KEYBOARD(0)
-- 
===============================================================
Alberto Rubinelli - A2 SISTEMI  Opera 7.54->
news.individual.net
Via Costantino Perazzi 22 - 28100 NOVARA - ITALY
Tel 0321 640149  Fax 0321 391769 BBS 0321 392320
Mail: 
alb...@retrocomputing.net
  ICQ : 49872318
Visita il mio museo di computers: 
http://www.oldcomputers.it
---------------------------------------------------------------
Per favore, non scrivetemi in html, testo ascii a 7 bit
Non rispondo a chi mi scrive con indirizzo di reply alterato
===============================================================

 a me sembra che facevo KEYBOARD(0)
Già, a quanto pare la usavo anch'io ma non ricordo proprio perché. Sulle
Norton Guides non c'è scritto nulla al riguardo. Comunque KEYBOARD è un
comando, non una funzione.


a me sembra che facevo KEYBOARD(0)
Casomai: keyboard  (senza alcun parametro), keyboard e' un comando.
Oppure con la corrispondente funzione __keyboard()  (notare i due
underline nel nome)
---
ciao, acc(at)
libero.it

che bocca e sblocca tastiera ?
No, esiste il comando keyboard che infila una stringa nel buffer di
tastiera, DOPO AVERNE CANCELLATO IL CONTENUTO.
Lo stesso comando, senza parametri, vuota il buffer di tastiera.
Il comando keyboard ha pero' grossa limitazioni:
- come gia' detto, azzera il buffer, per cui quanto digitato viene
perso.
- diversi tasti funzione che non hanno un codice ASCII valido, non
possono essere utilizzati.
Di seguito un esempio di funzione che usa il comando keyboard per
infilare una stringa nella tastiera senza cancellare il buffer (a
parte i tasti funzione di prima)
// StuffStr(cString) -> NIL
//
// Infila una stringa nel buffer di tastiera
proc StuffStr(s)
	local cBuf := "", k
	while (k := inkey()) != 0
		if (k > 0) .and. (k < 256)
			cBuf += chr(k)
		end
	enddo
	cBuf += s
	keyboard cBuf
return
---
ciao, acc(at)
libero.it

 Lo stesso comando, senza parametri, vuota il buffer di tastiera.
Giusto! Infatti il comando da me precedentemente citato č cosě definito:
#command CLEAR TYPEAHEAD => __Keyboard()


 underline nel nome)
guarda, non ricordo bene ... sono quelle cose che sono dentro in funzioni  
che usi ormai senza pensarci.
La mia era nella mia piccola funzione FlushBuffer() e chiamavo poi quella,  
l'originale manco so dov'e' :))


 EMG
Ho provato kbddisable(.f.),disabilita la tastiera ma con il comando
contrario la
tastiera mi rimane bloccata.
KBDDISABLE(.F.)
................
@ 22,0 SAY "9" 
KBDDISABLE(.T.)
SET KEY -9 TO F22V0
@ 3,0 SAY "Data..." GET INDATA PICTURE "DD-MM-YY" 
@ 3,18 SAY "Lista..." GET INLIST PICTURE "XXXXXX" VALID(INLIST $ "F   
 " .OR. INLIST $ "      " .OR. VAL(INLIST) > 0 )
READ
KBDDISABLE(.F.)
IF LEFT(INLIST,1) = "F"
CLOSE DATABASES
RETURN
ENDIF
.................
programma compilato con rtlink e wind98

 programma compilato con rtlink e wind98
Ciao, io ho usato, in una procedura che creava gli indici i comandi:
kbddisable(.T.) per disabilitare la tastiera e
kbddisable(.f.) per riabilitarla e funziona regolarmente.
Unico problema, in caso di blocco del programma, la tastiera resta bloccata. 
Per ovviare a ciò bisogna intercettare l'errore e riabilitare la tastiera.
Ciao, Enzo.