Newsgroup: it.comp.lang.vo-clipper
Titolo: Problema con SetFilter e Win XP

In una applicazione scritta in VO 2.5b3 ho una  data window che contiene una
sub data window dove effettuo il browse di un DbServer DbfNtx filtrato con
il metodo setfilter della classe DbServer. Nella finestra owner del browser
ci sono i controlli dove vengono inseriti i dati in base ai quali viene
impostato il setfilter. Tutto funziona  normalmente con Windows 98 ma poi mi
sono accorto che con Win XP prof il metodo setfilter non funziona e nel
browser vengono mostrati tutti i record del dbserver. Ho verificato che con
Win XP il metodo setfilter ritorna FALSE. Ho provato in tutti i modi
impostando il setfilter con o senza code block ma non sono riuscito a
risolvere questo problema che tra l'altro mi angoscia parecchio visto che la
mia applicazione sarà utilizzata soprattutto su macchine XP. Tra l'altro, mi
viene un atroce dubbio. Quali altre cose che funzionano perfettamente su
Win98, potrebbero non funzionare su XP?
Avete qualche dritta da darmi?
Approfitto dell'occasione per fare a tutti gli auguri di Buona Pasqua.
Ciao.
Roberto Cordini

 Win98, potrebbero non funzionare su XP?
Purtroppo alcune API funzionano in modo un po' diverso tra la famiglia
9x e la famiglia NT (ad esempio, SetCurrentDirectory(),
SetFileAttributes() a causa di alcune differenze sulle costanti
utilizzate negli attributi dei files, e altro che ora non mi ricordo).
Quindi dipende da quali API vengono utilizzate a basso livello se i
metodi ad alto livello funzionano o meno.
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

 EMG
Enrico grazie per la risposta.
Vorrei tranquillizzare tutti quelli che hanno letto il mio messaggio a
proposito di un possibile problema con il metodo SetFilter sotto Win XP. Il
problema non dipendeva dal sistema operativo ma dal diverso settaggio delle
impostazioni internazionali del pannello di controllo tra la macchina Win98
e quella XP. La prima era settata con il segno decimale "." (punto) mentre
la seconda con "," (virgola).
In pratica ricavavo a run time la stringa contenente i parametri da passare
a SetFilter e poi la compilavo in un CodeBlock. Alcune delle SLE nelle quali
si inseriscono i valori da prendere a riferimento per eseguire il filtro
sono numeriche con decimali. Per esempio la stringa risultava sulla macchina
Win 98 : "_Field->CampoNum==1234.56" mentre sulla macchina XP:
"_Field->CampoNum==1234,56".
Quando il SetFilter() nella macchina Win XP valutava il CodeBlock contenente
il numero con la virgola decimale dava ovviamente un errore ed il filtro non
veniva applicato.
Quindi il buon Win XP non c'entra niente. Occorre prestare solamente
attenzione alla questione delle impostazioni internazionali quando si
converte un numero decimali in stringa (a causa del segno decimale). Per il
resto, trattando i numeri come tali non ci sono inconvenienti anche
impostando Windows con il segno decimale ",". Nei controlli appariranno i
numeri decimali con la virgola e nella digitazione sarà accettata  sia la
pressione del tasto virgola che quella del tasto punto per inserire la parte
non intera del numero.
Ciao.
Roberto Cordini

Si.
Quando le PICTURE funzioneranno bene, potremo utilizzare
setinternational(#CLIPPER) per avere lo stesso comportamento su tutte le
macchine e visualizzare punti e virgole come meglio crediamo.
(... ma forse è un problema che nelle versioni 2.5bx è stato risolto, o no?)
Ciao
Massimo
"Robby" <roberto...@NOXSPAMiol.it> ha scritto nel messaggio
news:a81ocb$ipe$1...@zamboni.dsnet.it...
